C++20 协程
据我理解,协程是为了充分利用单线程的资源。 协程之间切换只涉及到2次上下文的切换(而且理论上是不用进内核的),而线程切换的流程复杂,涉及包含上下文切换的很多操作和算法。
在IO密集型的程序中,一般(比如A线程)涉及到IO之后就直接阻塞,然后操作系统调度其他要工作的线程(比如B线程)。这个时候A线程直接用协程来调度B,是能省点性能。
目前我没有遇到这种重IO的项目,等有了再实战研究一下。
http://www.vishalchovatiya.com/cpp20-coroutine-under-the-hood/