函数名称: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() 方法也会立即返回。