libco 是微信后台开发和使用的协程库,同时应该也是极少数的将 C/C++协程直接运用到如此大规模的生成环境中的案例了。
性能上来说,号称可以调度千万级协程。 从使用上来说,不仅提供了一套类 pthread 的协程通信机制,同时可以零改造地将三方库的阻塞 IO 调用协程异步化。
在另外一篇文章《云风 coroutine 协程库源码分析》中,我介绍了有栈协程的实现原理。
而相比于 coroutine 协程库, libco 整体更成熟,性能更高,使用上也更加方面。主要体现在以下几个方面:
本文将根据这几方面深入分析下 libco 的实现源码。
在正式阅读本文之前,如果对有栈协程的实现原理不是特别了解的话,建议可以提前阅读另外一篇文章《云风 coroutine 协程库源码分析》。
同时,我也提供了libco 注释版,辅助大家理解 libco 的代码。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.