4 ms·
In large numbers the cost of switching between threads does consume CPU while they're waiting for the database. This is why green threads exist, to have large n
by segfaltnh 2y ago
In large numbers the cost of switching between threads does consume CPU while they're waiting for the database. This is why green threads exist, to have large numbers of in flight work executing over a smaller number of OS threads.
- fulafel 2y agoWhen using OS threads, there's no switching when they are waiting for a socket (db connection). The OS knows to wake the thread up only when there's something new to see on the connection.
- deleted 2y ago[deleted]
- kbolino 2y agoBoth sides of a sleep/awake transition with conventional blocking system calls involve heavyweight context switches: the CPU protection level changes and the thread registers get saved out or loaded back in.
- fulafel 2y agoYes, but these don't happen while waiting.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]