coroutines其实就是让程序可以很简单的在不同的任务之间切换,它和可以提高软件效率的线程完全是两个概念,它不具有提升软件效率的功能,它本身更多的是一种软件设计架构上的概念,而不关乎效率,换句话而言,其实用其他的办法一样可以实现相同的功能,只是通过协程来表达更佳直观符合人们的逻辑。
现在很多语言都嵌入了coroutines, C/C++没有直接支持,但是C可以参照http://swtch.com/libtask/,然而C++可以参考boost的coroutines。
TODO:具体应用仍然不够明朗。
http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html