对于协程,以前从未听说过,直到腾讯的面试中频繁出现这个东西,才开始接触到这个协程,可以理解为 用户态的 轻量级的 线程。
协程与线程一样拥有独立的寄存器上下文以及运行栈,它所维护的运行栈的大小是由用户设置的。
相比线程协程的创建与调度要轻量得多,而且协程间的通信与同步是可以无锁的,任一时刻都可以保证只有本协程在操作线程内的资源。
因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。
目前php的框架swoole2.0 也开始支持协程了。
建议阅读: C/C++协程库libco:微信怎样漂亮地完成异步化改造 开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石