Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.9k views
in Technique[技术] by (71.8m points)

swoole channel pop阻塞问题

PHP Version 7.2.22 (cli) (built: Sep 11 2019 18:11:52) ( NTS )

swoole Version => 4.4.12

    go(function(){
        $chan = new SwooleCoroutineChannel(1000);
        SwooleCoroutine::create(function () use ($chan) {
            for($i = 0; $i < 10; $i++) {
                co::sleep(0.01);
                $chan->push(['rand' => rand(1000, 9999), 'index' => $i]);
            }
        });
        SwooleCoroutine::create(function () use ($chan) {
            while(1) {
                $data = $chan->pop();
                var_dump($data);
            }
        });
    });

同一个代码 4.4以上的swoole版本pop就不阻塞, 4.3.1的版本就会阻塞在pop, 但是我看现在的文档 pop 默认是值是-1 永远不超时,这个是如何理解呢,是代表永远都不会阻塞了么


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...