查詢

Swoole\Coroutine::cli_wait()函式—用法及示例

「 等待子程序的退出 」


函式名: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建立的子程序退出,不能等待其他方式建立的子程序退出。

補充糾錯
熱門PHP函式
分享連結