+
95
-

回答

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";
}


网友回复

我知道答案,我要回答