\Swoole\CoroutineChannel

Class Channel

Summary

Methods
Properties
Constants
select()
__construct()
push()
pop()
isEmpty()
isFull()
close()
stats()
length()
$capacity
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$capacity

$capacity : integer

Type

integer — 容量,这个数字一定是正整数

Methods

select()

select(array  $read, array  $write, float  $timeout) : boolean

select 通道读写检测。类似于socket_select和stream_select可以检测channel是否可进行读写。

Parameters

array $read

数组引用类型,元素为channel对象,读操作检测,可以为null

array $write

数组引用类型,元素为channel对象,写操作检测,可以为null

float $timeout

浮点型,超时设置,单位为秒,最小粒度为0.001秒,即1ms。默认为0,表示永不超时。

Returns

boolean —

成功返回true,底层会修改$read、$write数组,$read和$write中的元素,即是可读或可写的channel

__construct()

__construct(integer  $capacity) 

Channel constructor.

Parameters

integer $capacity

容量

push()

push(mixed  $data) : boolean

push 向通道中写入数据

Parameters

mixed $data

任意类型的PHP变量,包括匿名函数和资源

Returns

boolean —

是否执行成功

pop()

pop() : mixed

pop 从通道中读取数据

Returns

mixed —

可以是任意类型的PHP变量,包括匿名函数和资源

isEmpty()

isEmpty() : boolean

isEmpty 判断当前通道是否为空

Returns

boolean —

当前通道是否为空

isFull()

isFull() : boolean

isFull 判断当前通道是否已满

Returns

boolean —

当前通道是否已满

close()

close() : void

close 关闭通道。并唤醒所有等待读写的协程

stats()

stats() : array

stats 获取通道的状态

Returns

array —

状态{ consumer_num : 消费者数量,表示当前通道为空,有N个协程正在等待其他协程调用push方法生产数据 producer_num : 生产者数量,表示当前通道已满,有N个协程正在等待其他协程调用pop方法消费数据 queue_num : 通道中的元素数量 queue_bytes : 可能存在, 通道当前占用的内存字节数 }

length()

length() : integer

length 获取通道中的元素数量

Returns

integer —

通道中的元素数量