swoole v6发布了多线程 https://mp.weixin.qq.com/s/HzPEg7g3PuN2Xky4EQfnHw 可不可以借助这个,重新启动workerman的多线程版本 这样可以多开几个线程跑任务,不怕进程被占用光了 还有请问这个线程之间是相互隔离,没有使用负担的吗
https://mp.weixin.qq.com/s/FByGGLS-SDjgoN_AbxgsgQ
直接用swoole就好了
可不可以借助这个,重新启动workerman的多线程版本
这个需要运行在zts的环境下,workerman目前不支持zts环境,多线程版本需要对workerman底层做较大的改动,并且与进程版本互不兼容,精力有限
这样可以多开几个线程跑任务,不怕进程被占用光了
多线程会比多进程在性能上损耗10-20%,另外线程虽然调度资源比进程轻,但也不是真的可以随意的弹性伸缩
还有请问这个线程之间是相互隔离,没有使用负担的吗
zts版本PHP就是会对全局变量进行拷贝,整体使用跟进程没区别,swoole v6提供了可以线程间通讯的map和array list,这一部分需要自行使用锁或者信号量来进行处理;
完整的多线程编程还需要条件变量、互斥锁、信号量、事件等,罗马并不是一天就建立的
最后结论,如果想直接使用多线程,建议直接使用swoole v6 + zts php即可
回答nice
https://mp.weixin.qq.com/s/FByGGLS-SDjgoN_AbxgsgQ
直接用swoole就好了
这个需要运行在zts的环境下,workerman目前不支持zts环境,多线程版本需要对workerman底层做较大的改动,并且与进程版本互不兼容,精力有限
多线程会比多进程在性能上损耗10-20%,另外线程虽然调度资源比进程轻,但也不是真的可以随意的弹性伸缩
zts版本PHP就是会对全局变量进行拷贝,整体使用跟进程没区别,swoole v6提供了可以线程间通讯的map和array list,这一部分需要自行使用锁或者信号量来进行处理;
完整的多线程编程还需要条件变量、互斥锁、信号量、事件等,罗马并不是一天就建立的
最后结论,如果想直接使用多线程,建议直接使用swoole v6 + zts php即可
回答nice