ThreadChannel::capacity
(PHP 8.6+, True Async 1.0)
php
public ThreadChannel::capacity(): intRetourne la capacité du canal définie à la construction.
0— canal non bufferisé (synchrone) :send()bloque jusqu'à ce que le récepteur soit prêt.- Nombre positif — nombre maximum de valeurs que le tampon peut contenir simultanément.
La capacité est fixée pour la durée de vie du canal et ne change pas.
Valeurs de retour
La capacité du tampon du canal (int).
Exemples
Exemple #1 Vérifier la capacité
php
<?php
use Async\ThreadChannel;
$unbuffered = new ThreadChannel();
echo $unbuffered->capacity(); // 0
$buffered = new ThreadChannel(64);
echo $buffered->capacity(); // 64Exemple #2 Logique adaptative selon le type de canal
php
<?php
use Async\ThreadChannel;
function describeChannel(ThreadChannel $ch): void {
if ($ch->capacity() === 0) {
echo "Non bufferisé : chaque send() bloque jusqu'à ce que recv() soit appelé\n";
} else {
$free = $ch->capacity() - $ch->count();
echo "Bufferisé : capacité {$ch->capacity()}, {$free} emplacement(s) libre(s)\n";
}
}
$ch = new ThreadChannel(8);
$ch->send('item');
describeChannel($ch); // "Buffered: capacity 8, 7 slot(s) free"Voir aussi
- ThreadChannel::__construct — Créer un canal
- ThreadChannel::count — Nombre de valeurs actuellement dans le tampon
- ThreadChannel::isFull — Vérifier si le tampon est plein
- Vue d'ensemble du composant ThreadChannel