查询

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函数
分享链接