- The overhead of a thread context switch is expensive due to cache thrashing
- If the context switch is due to IO readiness, the overhead is equivalent for both
- The main benefit of async is the coding model and the power it provides (cancellation, selection)
- Threads won't scale past tens of thousands of connections
- Async is about better utilizing memory, not performance
- A normal-sized Linux server can handle a million threads without much trouble, async isn't worth it (harder coding model, colored functions)
Is the context switch overhead the same for both? If so, why can't threads scale to 100k+ connections?