|
|
|
|
|
by GrayShade
2500 days ago
|
|
You're still paying some costs: there might be scalability issues in the scheduler data structures (how long does it take to schedule one thread out of a million blocked ones?), you need memory to store their stacks (hope you're on 64-bit), when they become runnable, you have a lot of context switches (which cost even more now after the Spectre fixes). Probably others that don't come to mind right now. As for Apache, it spins a number of processes up to a point. When there aren't any free ones, the clients don't get any data. |
|
> For one thing, threads take up memory and address space, and create work for the scheduler.
It is the right answer. "Cores are waiting" is not the right answer.