Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why can't virtual threads overcommit CPU use? If I have 4 CPUs and 4000 virtual threads running CPU-bound code, is that not overcommit? A system without overcommit would refuse to create the 5th thread.


I think parent is saying overcommit with OS threads. 4k requests = 4k OS threads. That would lead to the problems parent is talking about.


Why wouldn't 4k virtual threads lead to the same problems?


Because they don't create 4k real threads, and can be scheduled on n=CPU Cores OS threads


4k "real" threads can also be scheduled on 4 CPU cores. What's the difference?


Real threads are extremely expensive both in terms of memory and CPU time compared to virtual threads. I think the main issue is not even that but context switching when switching threads which is also very expensive.

Virtual threads usually require significantly fewer resources to spawn and run. And, if the underlying system is implemented with them in mind, they can use fewer context switches, and possibly even fewer cache misses etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: