通道
Coroutine\Channel 使用本地記憶體,不同的行程之間記憶體是隔離的,
只能在同一行程的不同協程內進行 push 和 pop 操作,
Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]);
Co\run(function(){
// 設定一個容量為1的通道
$chan = new Swoole\Coroutine\Channel(1);
Swoole\Coroutine::create(function () use ($chan) {
for($i = 0; $i < 100000; $i++) {
co::sleep(1.0);
// 向通道中寫入資料,通道已滿時會排隊等候
$chan->push(['rand' => rand(1000, 9999), 'index' => $i]);
echo "$i pushed! \n";
}
});
Swoole\Coroutine::create(function () use ($chan) {
while(1) {
$data = https://www.cnblogs.com/danhuang/p/$chan->pop();
var_dump($data);
}
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/6584.html
標籤:PHP
