Hello!
2012/6/28 charles8135 wrote:
> 春哥,想问一下,Lua之所以可以和Nginx结合起来,其中很重要的是
> Lua通过协程实现了非阻塞,因而和nginx配合起来可以支持高并发。
> 那是否可以在php中实现一下类似Lua中协程的概念,让php也可以支
> 持非阻塞的i/o操作
因为现有的 php 实现貌似没有支持 coroutine 的,所以有几种选择:
1. 为现有的 php 实现直接添加语言级别的 coroutine 支持或者类似的库扩展。
2. 在现有的 php 实现基础之上搞上层编译器,把同步记法的 php 伪代码即时(或者预先)编译为与之等效的异步调用的原生 php
代码。Jscex 项目就是这种思路,不过是在 JavaScript 世界里面搞。
3. 重新实现一个 php 编译器,将 php 代码编译为支持 coroutine 的语言,比如
Lua,这样就可以借用那些语言的运行时,直接跑 php 代码。chaoslawful 正工作在 php2lua 编译器项目上。
仅供参考 :)
Best regards,
-agentzh
P.S. 同时抄送给 openresty 邮件组:https://groups.google.com/group/openresty (也欢迎你加入 :) )