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

SyncEvent::fire()函数—用法及示例

「 触发同步事件 」


函数名称: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 扩展。

补充纠错
上一个函数: SyncEvent::reset()函数
下一个函数: symlink()函数
热门PHP函数
分享链接