PHP Conference Japan 2024

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__constructChannel 建構式

說明

public parallel\Channel::__construct()

建立一個匿名的無緩衝 Channel。

public parallel\Channel::__construct(int $capacity)

建立一個具有指定容量的匿名緩衝 Channel。

參數

capacity

可以是 Channel::Infinite 或一個正整數。

新增筆記

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

abolfazl dot ziaratban at gmail dot com
3 年前
$capacity 是緩衝區中堆疊的數量。

例如

<?php
use parallel\{Channel,Runtime};

$test = function($ch){
var_dump($ch->Recv());
var_dump($ch->Recv());
var_dump($ch->Recv());
echo
'Sleep'.PHP_EOL;
sleep(3);
echo
'Call Recv()'.PHP_EOL;
var_dump($ch->Recv());
};

$t1 = new Runtime();
$ch = new Channel(3); //緩衝通道
$ch->Send('abc1');
$ch->Send('abc2');
$ch->Send('abc3');
$t1->Run($test,[$ch]);
sleep(1);
echo
'Wait for Recv()...'.PHP_EOL;
$ch->Send('abc4'); #php 只會等待通道中的一個堆疊被清空 (透過 Recv() 方法)
?>

結果
string(4) "abc1"
string(4) "abc2"
string(4) "abc3"
Sleep
Wait for Recv()...
Call Recv()
string(4) "abc4"
frame86 at live dot com
4 年前
請注意 $capacity 的單位是 MiB,而不是位元組
To Top