每个Worker是一个进程启动的吧,所以不支持一个start_xxxx.php文件中放多个worker?

zhouciming

昨天看了下Worker的源码,发现并不支持一个start_xxx.php文件中存在多个Worker,为什么这样呢?是因为一个Worker就是一个进程吗?因为会跑他的事件循环,如果多个worker,就会阻塞另一个worker的运行?因为$globalEvent是static全局的,所以只能在一个进程中使用!?
 
第二,$globalEvent是在每个Worker子进程中独立的吗?如一个Worker->count=3,那么他会启动3个子进程,而这3个子进程中的$globalEvent是不同的实例,互不影响,是这样吗?

2295 1 0
1个回答

blogdaren

1、启动文件中完全支持多个 wokrer 实例,都是独立运行在父进程派生的对应子进程中,彼此独立运行,互不影响。
2、$globalEvent在每个Worker子进程中也是彼此独立的,互不影响。

年代过于久远,无法发表回答
🔝