swoole 协程
<?php Co\run(function () { $wg = new \Swoole\Coroutine\WaitGroup(); $result = []; $wg->add();//协程数量加1 $time = microtime(true); //启动第一个协程 go(function () use ($wg, &$result) {//use 关键字 函数闭包 调用外部变量 co::sleep(1); $result['data0'] = "lala"; echo "协程1 任务完成\n"; $wg->done();//本协程任务完成 }); $wg->add();//协程数量加1 //启动第二个协程 go(function () use ($wg, &$result) { co::sleep(2); $result['data1'] = "lala"; echo "协程2 任务完成\n"; $wg->done();//本协程任务完成 }); //挂起父协程,等待所有子协程任务完成后恢复 $wg->wait(); echo "所有协程任务完成,总耗时".(microtime(true)-$time)."s\n"; //这里 $result 包含了 2 个任务执行结果 var_dump($result); });
https://blog.csdn.net/qq_35772366/article/details/106304489