函式名:Swoole\Coroutine::cli_wait()
適用版本:Swoole v4.3.0以上
函式用法: Swoole\Coroutine::cli_wait()函式是Swoole協程提供的一個阻塞函式,用於等待子程序的退出。當一個子程序退出時,該函式會返回子程序的程序號。
函式示例:
<?php
use Swoole\Coroutine;
go(function () {
$process = new Coroutine\Process(function () {
// 子程序邏輯
echo "子程序開始執行\n";
Coroutine::sleep(2); // 模擬子程序執行
echo "子程序執行結束\n";
});
$pid = $process->start();
echo "子程序的程序號:{$pid}\n";
// 等待子程序退出
$exitPid = Coroutine::cli_wait(); // 阻塞等待子程序退出
echo "子程序{$exitPid}退出\n";
});
在上面的示例中,我們建立了一個協程,並使用Swoole\Coroutine\Process類建立了一個子程序。子程序的邏輯是先列印一條訊息,然後休眠2秒鐘,最後再列印一條訊息。在主程序中,我們透過呼叫Swoole\Coroutine::cli_wait()函式來等待子程序退出。當子程序退出時,該函式會返回子程序的程序號。我們在主程序中列印出子程序的程序號和退出的訊息。
需要注意的是,Swoole\Coroutine::cli_wait()函式只能在協程環境中使用,不能在普通的PHP環境中使用。另外,該函式只能等待Swoole\Coroutine\Process建立的子程序退出,不能等待其他方式建立的子程序退出。
熱門工具排行榜