Discussions of coroutines and user-mode threads — like Project Loom’s virtual threads or Go’s goroutines — frequently turn to the subject of performance. The question I’ll try answering here is, how do user-mode threads offer better application performance than OS threads? One common assumption is that this has to do with task-switching costs, and that the performance benefit of user-mode threads
![On the Performance of User-Mode Threads and Coroutines – Inside.java](https://cdn-ak-scissors.b.st-hatena.com/image/square/0f2b8f2630be9df954e883d45e5d51a82b2e1f0f/height=288;version=1;width=512/https%3A%2F%2Finside.java%2Fimages%2Fjava-logo-vert-blk.png)