English | 简体中文 | 繁體中文
查询

Thread::join()函数—用法及示例

「 等待一个线程直到其结束执行 」


函数名称:Thread::join()

适用版本:PHP 7.2.0 及以上版本

函数描述:Thread::join() 方法用于等待一个线程直到其结束执行。它会阻塞当前线程,直到被调用的线程执行完毕。如果被调用的线程已经执行完毕,那么该方法会立即返回。

语法:bool Thread::join ( void )

参数:无

返回值:如果线程成功加入,返回 true,否则返回 false。

示例:

class MyThread extends Thread {
    public function run() {
        echo "线程开始执行\n";
        sleep(5);
        echo "线程执行完毕\n";
    }
}

$thread = new MyThread();
$thread->start();

echo "主线程开始执行\n";

// 等待子线程执行完毕
$thread->join();

echo "主线程执行完毕\n";

输出:

主线程开始执行
线程开始执行
线程执行完毕
主线程执行完毕

在上面的示例中,我们定义了一个继承自 Thread 类的自定义线程类 MyThread。在 run() 方法中,我们简单地输出一些信息,然后让线程休眠 5 秒钟。在主线程中,我们创建了一个 MyThread 实例并启动它。然后,我们调用了 join() 方法,使主线程等待子线程执行完毕。最后,我们在主线程中输出一些信息。

注意:在使用 Thread::join() 方法时,需要确保在子线程调用了 start() 方法之后再调用 join() 方法,否则 join() 方法会立即返回。此外,如果线程执行过程中发生了异常,那么 join() 方法也会立即返回。

补充纠错
上一个函数: Thread::start()函数
下一个函数: Thread::isStarted()函数
热门PHP函数
分享链接