php扩展ext-fiber的执行流程
amphp 一直在推动的php扩展fiber,最近在讨论集成到php的官方内核中。
这样php就有多了一个异步操作的解决方案。
一直以来php在异步并发处理做出一些努力。就拭目以待ext-fiber能够给php带来什么。
看了一下php扩展ext-fiber的执行流程:
fiber 大概就是实现了一种主执行流程和fiber执行流程的手动切换。
fiber->start() 从main流程切换到fiber流程执行
Fiber::suspend() 从fiber切换到main流程
接下来main流程可以执行一些操作,或者顶一个事件循环监听socket的数据情况
当有数据写入事件后,调用Fiber->resume 切换到fiber中去执行比如从socket 读取数据这样的操作
fiber的流程代码执行完毕以后,也就自动切换到主流程,如果事件循环也结束了,那么就主流程继续向下执行。
总的来说 fiber 的执行流程,还是很简练清晰的。