Coroutine\Channel->pop

最后更新于:2022-04-02 06:26:36

# Coroutine\\Channel->pop [TOC] 从通道中读取数据。 ~~~ function Coroutine\Channel->pop(float $timeout = 0) : mixed; ~~~ * 返回值可以是任意类型的`PHP`变量,包括匿名函数和资源 * 通道并关闭时,执行失败返回`false` * `$timeout`指定超时时间,浮点型,单位为秒,最小粒度为毫秒,在规定时间内没有生产者`push`数据,将返回`false` > `$timeout`参数在`4.0.3`或更高版本可用 ## 通道已满 * `pop`消费数据后,将自动唤醒其中一个生产者协程,让其写入新数据 * 多个生产者协程同时`push`时,底层自动进行排队,按照顺序逐个`resume`这些生产者协程 ## 通道为空 * 自动`yield`当前协程,其他生产者协程`push`生产数据后,通道可读,将重新`resume`当前协程 * 多个消费者协程同时`pop`时,底层自动进行排队,底层会按照顺序逐个`resume`这些消费者协程
';