Attached is a further simplified version of the same program. To use this program, you must first compile it and save it in the same directory as the code. Instead of downloading files, the threads execute long do loops. This was done to make the CPU cores work hard so they will display in the Resource Monitor.
Open the Resource Monitor and click on the CPU tab. This should display graphic images of the CPU cores that you have available. Now start the executable that you created called Download.exe. Go back to the Resource Monitor and find Download.exe in the list of threads. It is constantly changing, so quickly click on the box beside the name. This will move the file to the top of the list. Now go back to the Download window and quickly click on the command boxes in reverse order (Run4, Run3, Run2, Run1). You should see the results in some of the core displays. You will also see the Start and End times in the Download window. This is what I saw on my PC, along with the elapsed times I calculated:
Start Thread4 46164.59
Start Thread3 46165
Start Thread2 46165.61
Start Thread1 46166.19
End Thread1 46167.77 (1.6 sec)
End Thread2 46168.69 (3.1 sec)
End Thread3 46171.12 (6.1 sec)
End Thread4 46176.59 (12.0 sec)