Skip to content

Latest commit

 

History

History
18 lines (11 loc) · 1.16 KB

coroutine.md

File metadata and controls

18 lines (11 loc) · 1.16 KB

协程(Coroutine)

对于协程,以前从未听说过,直到腾讯的面试中频繁出现这个东西,才开始接触到这个协程,可以理解为 用户态的 轻量级的 线程。

协程与线程一样拥有独立的寄存器上下文以及运行栈,它所维护的运行栈的大小是由用户设置的。

相比线程协程的创建与调度要轻量得多,而且协程间的通信与同步是可以无锁的,任一时刻都可以保证只有本协程在操作线程内的资源。

因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。

目前php的框架swoole2.0 也开始支持协程了。

建议阅读: C/C++协程库libco:微信怎样漂亮地完成异步化改造 开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石

libco 分析(上):协程的实现 libco 分析(下):协程的管理