Threaded::notify()

通知一个正在等待此对象上的线程

首字母:T

函数名称:Threaded::notify()

适用版本:PHP 5 >= 5.3.0, PHP 7

函数描述:Threaded::notify()方法用于通知一个正在等待此对象上的线程。如果没有线程正在等待,则此方法不会产生任何效果。

用法:

public function Threaded::notify ( void ) : bool

参数说明:此函数没有参数。

返回值:如果成功通知了一个线程,则返回true,否则返回false。

示例:

synchronized(function($thread){
 echo "线程等待\n";
 $thread->wait();
 echo "线程恢复\n";
 }, $this);
 echo "线程结束\n";
 }
}
$thread = new MyThread();
$thread->start();
usleep(100000); // 等待100毫秒,确保线程已经开始执行
$thread->synchronized(function($thread){
 echo "主线程通知\n";
 $thread->notify();
}, $thread);
$thread->join();
?>

输出:

线程开始
线程等待
主线程通知
线程恢复
线程结束

注意事项:

  • Threaded::notify()方法只能在使用synchronized()方法锁定的代码块中调用。
  • 必须在等待线程的synchronized()代码块中调用Threaded::wait()方法来等待通知。
  • 线程必须在等待通知之前开始执行,否则通知将无效。
  • 线程通知的顺序无法保证,因此不应该依赖于特定的通知顺序。
  • 如果有多个线程在等待通知,只有一个线程会被通知到,其它线程会继续等待。

同首字母函数