It's like bathrooms in the house. Most of the time they're empty, but everybody wants to use them at the same time.
Actually, this stuff doesn't need much CPU "power"... If your CPU monitor says 0%, then all that background stuff is taking less than 1%.Quote:
I suppose that the CPU is always querying hardware and filling buffers.
That automobile anology was bad, because the CPU never slows down, or stops execuiting instructions. When it says 0%, then your processor is "revving" full speed in a loop that has a bunch of conditional-branch statements (machine language if-statements). 99% (or more) of the conditional statements return "false", so it is running lots of do-nothing loops... ready to jump into action when needed.
The operating system will allocate CPU time to all running applications. If you are running only one application, then it's not so important for your program to "play-nice". But, you shouldn't use CPU time just to sit in a loop. By using Sleep(), you are telling the operating system that you aren't doing anything important, and other programs can have 100% for a while.
Oh no! Another analogy! :D
Say you go to a party, and there are three cookies for everyone. You're not hungry and you only eat one... You can either take 3 and throw 2 away, or leave the extra two for somebody who wants a couple extra. If you are the only one who shows up to the party, you can eat all you want, and throw some away without affecting anyone else.