Channel::count
(PHP 8.6+, True Async 1.0)
public Channel::count(): int
Возвращает текущее количество значений, находящихся в буфере канала.
Channel реализует интерфейс Countable, поэтому можно использовать count($channel).
Для канала-рандеву (capacity = 0) всегда возвращает 0.
Возвращаемые значения
Количество значений в буфере (int).
Примеры
Пример #1 Мониторинг заполнения буфера
<?php
use Async\Channel;
$channel = new Channel(5);
$channel->send(1);
$channel->send(2);
$channel->send(3);
echo count($channel); // 3
echo $channel->count(); // 3
$channel->recv();
echo count($channel); // 2
Пример #2 Логирование нагрузки на канал
<?php
use Async\Channel;
$tasks = new Channel(100);
spawn(function() use ($tasks) {
while (!$tasks->isClosed()) {
$usage = $tasks->count() / $tasks->capacity() * 100;
echo "Буфер заполнен на " . round($usage) . "%\n";
delay(1000);
}
});
См. также
- Channel::capacity — Ёмкость канала
- Channel::isEmpty — Проверить, пуст ли буфер
- Channel::isFull — Проверить, полон ли буфер