parallel\Channel::open
(0.9.0)
parallel\Channel::open — Access
说明
public parallel\Channel::open(string
$name
): ChannelShall open the channel with the given name
Exceptions
警告
Shall throw parallel\Channel\Error\Existence if channel does not exist.

User Contributed Notes 1 note
gam6itko ¶
8 months ago
<?php
// example below shows how to get channel by name within child thread with Channel::open()
use parallel\{Channel, Runtime};
$fnThread = static function () {
$channel = Channel::open('channel_name');
$message = $channel->recv();
echo "- received message: $message\n";
return 'bye';
};
$channel = Channel::make('channel_name', 1);
// main thread
$runtime = new Runtime();
$future = $runtime->run($fnThread, [$channel]);
echo "sending message\n";
$channel->send('hello future!');
sleep(1);
echo "closing channel\n";
$channel->close();
echo "future said: ".$future->value();
echo PHP_EOL;
备份地址:http://www.lvesu.com/blog/php/parallel-channel.open.php