Hello!
2014-12-17 18:43 GMT-08:00 needpy john:
> coroutine.create和ngx.thread.spawn
> 的区别是前者是自己不断resume来推动前进,而后者是由“轻线程调度器自动调度”来推动,而关于这个”轻线程调度器自动调度“不是太理解?希望明白的赐教下。
>
其实最终是由 nginx 的事件循环来调度的。而这里的事件都是 epoll/kqueue 之类调度的 IO 事件。
> 这两个既然底层都是lua或luajit内的lua_newthread来实现的话,那也就是单进程内都是串行的吧?不知可否这样理解而总的执行时间也是各段执行时间累加,而不能是按最长的执行时间来算。
>
在讨论“时间”的时候,最好区分是 IO 时间还是 CPU 时间,二者有本质区别。轻量级线程只有对 IO 密集型的场景才有意义。
Regards,
-agentzh