通道
Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的。
只能在同一进程的不同协程内进行 push 和 pop 操作。
Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]);Co\run(function(){// 设置一个容量为1的通道$chan =newSwoole\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 = $chan->pop(); var_dump($data); } });});
通道
Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的。
只能在同一进程的不同协程内进行 push 和 pop 操作。
Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]);Co\run(function(){// 设置一个容量为1的通道$chan =newSwoole\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 = $chan->pop(); var_dump($data); } });});
亚马逊测评 www.yisuping.com