phpy有没有多任务线程编排执行的库?
网友回复
swoole的协程可以实现php中的多个任务的编排,示例代码如下:
<?php use Swoole\Coroutine\Channel; Swoole\Runtime::enableCoroutine(); Co\run(function() { $channel = new Channel(2); go(function () use ($channel) { taskOne($channel); }); go(function () use ($channel) { taskTwo($channel); }); $channel->pop(2); // 等待两个协程任务完成 taskThree(); }); // 任务一:等待5秒钟 function taskOne($channel) { sleep(3); echo "Task One completed.\n"; $channel->push(1); // 将消息写入通道 } // 任务二:等待3秒钟 function taskTwo($channel) { sleep(3); echo "Task Two completed.\n"; $channel->push(1); // 将消息写入通道 } // 任务三:等待1秒钟 function taskThree() { sleep(5); echo "Task Three completed.\n"; }