Channel::isFull
(PHP 8.6+, True Async 1.0)
php
public Channel::isFull(): boolPrüft, ob der Channel-Puffer bis zur maximalen Kapazität gefüllt ist.
Für einen Rendezvous-Channel (capacity = 0) gibt diese Methode immer true zurück, da kein Puffer vorhanden ist.
Rückgabewerte
true — der Puffer ist voll (oder es handelt sich um einen Rendezvous-Channel). false — der Puffer hat freien Platz.
Beispiele
Beispiel #1 Pufferfüllstand prüfen
php
<?php
use Async\Channel;
$channel = new Channel(2);
echo $channel->isFull() ? "voll" : "hat Platz"; // "hat Platz"
$channel->send('a');
$channel->send('b');
echo $channel->isFull() ? "voll" : "hat Platz"; // "voll"Beispiel #2 Adaptive Senderate
php
<?php
use Async\Channel;
$channel = new Channel(50);
spawn(function() use ($channel) {
foreach (readLargeFile('data.csv') as $line) {
if ($channel->isFull()) {
echo "Puffer voll, Verarbeitung wird verlangsamt\n";
}
$channel->send($line); // Suspendiert, wenn voll
}
$channel->close();
});Siehe auch
- Channel::isEmpty --- Prüfen, ob der Puffer leer ist
- Channel::capacity --- Channel-Kapazität
- Channel::count --- Anzahl der Werte im Puffer
- Channel::sendAsync --- Nicht-blockierendes Senden