查詢

parallel\Channel::recv()函式—用法及示例

「 從通道中接收資料 」


函式名稱:parallel\Channel::recv()

函式描述:該函式用於從通道中接收資料。

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

語法:mixed parallel\Channel::recv()

引數:無

返回值:該函式返回從通道中接收到的資料。如果通道為空,則該函式會阻塞當前程序,直到有資料可用。

示例:

<?php
$channel = new parallel\Channel();

// 生產者程序
$producer = new parallel\Runtime();
$producer->run(function() use ($channel) {
    $data = 'Hello, World!';
    $channel->send($data);
});

// 消費者程序
$consumer = new parallel\Runtime();
$result = $consumer->run(function() use ($channel) {
    return $channel->recv();
});

echo $result; // 輸出:Hello, World!
?>

在上面的示例中,我們建立了一個通道 $channel。然後,我們使用並行執行時建立了兩個程序,一個作為生產者,另一個作為消費者。在生產者程序中,我們使用 $channel->send() 方法將資料傳送到通道中。在消費者程序中,我們使用 $channel->recv() 方法從通道中接收資料。最後,我們將接收到的資料 $result 輸出到螢幕上。

請注意,當通道為空時,$channel->recv() 方法會阻塞當前程序,直到有資料可用。這樣可以確保消費者程序只在有資料可接收時才繼續執行。

補充糾錯
上一個函式: parallel\Channel::send()函式
下一個函式: parallel\Channel::open()函式
熱門PHP函式
分享連結