swoole4 动态添加线程

最近看swoole,有个教程是动态加线程,用timer的tick分发任务。

首先tick和其对应的线程内存不共享。其次动态弄线程,对线程队列进行添加。

两者相结合,即线程添加只能在分发任务的tick中执行。

但是swoole中在tick中加线程会报凑“Uncaught Swoole\Error: must be forked outside the coroutine”。

加swoole_async_set(['enable_coroutine' => false,]);能解决问题,但是被创建线程对应的监听不会起作用。

所以要是swoole中在主线程创建的子进程队列中并分发任务,且可动态创建线程。在swoole4中使用tick处理不可取。早期版本可以。

process/pool其构造就要求传入线程数,也没有加线程的方法。

process/Manager可以添加线程,回调的Pool对象也是指一个线程。但是它是堵塞执行,启动之后其余代码不执行。这样就无法判断是否添加线程。

对于这种需求,直接线程数写死就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lsswear

感谢大佬打赏 q(≧▽≦q)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值