2024 年 PHP Conference Japan

parallel\Channel::open

(0.9.0)

parallel\Channel::open存取

說明

public parallel\Channel::open(字串 $name): Channel

開啟指定名稱的通道

例外

警告

如果通道不存在,將會拋出 parallel\Channel\Error\Existence 例外。

新增筆記

使用者貢獻的筆記 1 則筆記

0
gam6itko
3 年前
<?php

// 以下範例展示如何在子執行緒中使用 Channel::open() 透過名稱取得通道

use parallel\{Channel, Runtime};

$fnThread = static function () {
$channel = Channel::open('channel_name');
$message = $channel->recv();
echo
"- 收到訊息: $message\n";

return
'bye';
};

$channel = Channel::make('channel_name', 1);

// 主執行緒
$runtime = new Runtime();
$future = $runtime->run($fnThread, [$channel]);

echo
"正在傳送訊息\n";
$channel->send('hello future!');
sleep(1);
echo
"正在關閉通道\n";
$channel->close();

echo
"future 回應: ".$future->value();
echo
PHP_EOL;
To Top