函数名称:SyncEvent::fire()
适用版本:PHP 7.2.0 及以上版本
函数用法: SyncEvent::fire() 函数用于触发同步事件。同步事件是一种在多个线程之间传递信号的机制,可以用于线程间的同步和通信。
示例:
<?php
// 创建一个同步事件对象
$event = new SyncEvent();
// 在一个线程中等待事件触发
$thread1 = new Thread(function($event) {
echo "Thread 1: Waiting for event...\n";
$event->wait();
echo "Thread 1: Event fired!\n";
}, $event);
$thread1->start();
// 在另一个线程中触发事件
$thread2 = new Thread(function($event) {
echo "Thread 2: Sleeping for 2 seconds...\n";
sleep(2);
echo "Thread 2: Firing event!\n";
$event->fire();
}, $event);
$thread2->start();
// 等待线程执行完毕
$thread1->join();
$thread2->join();
?>
输出:
Thread 1: Waiting for event...
Thread 2: Sleeping for 2 seconds...
Thread 2: Firing event!
Thread 1: Event fired!
在上面的示例中,我们创建了一个同步事件对象 $event
。然后,我们在线程1中等待事件的触发,线程2中睡眠2秒后触发事件。当事件触发后,线程1继续执行。
请注意,SyncEvent 类是通过 pthreads 扩展提供的,因此在使用该函数之前,需要确保已经安装并启用了 pthreads 扩展。