sniperHW / distri.lua

distributed lua framework
151 stars 71 forks source link

这个框架是单线程的吗? #1

Closed cmzx3444 closed 10 years ago

cmzx3444 commented 10 years ago

看了下代码,主线程一直有个循环去wait IO事件,整个进程没有创建新的线程。这样怎么利用多核的优势?还是实际开发的时候开多个进程? 如果用多线程模式,一个io线程,多个worker线程,共享一个lua虚拟机,这样可行不?

sniperHW commented 10 years ago

对框架是单线程的,我在使用中是通过多进程的方式.共享lua虚拟机是肯定不行的,效率及其低下. 可行的方式是各worker有各自的虚拟机.有考虑过提供fork调用创建一个独立运行的线程.但最后的考虑是既然使用lua,本身就是为了使用方便,硬要为一种不支持原生线程的语言去添加线程支持不如直接使用本来就对多线程提供了更多便利措施的语言.

cmzx3444 commented 10 years ago

最近再看skynet,他这个好像是多线程的,开启很多lua虚拟机,暂时还没看明白。关闭先。