KomponentenThreadChannel::capacity()

ThreadChannel::capacity ​

(PHP 8.6+, True Async 1.0)

php
public ThreadChannel::capacity(): int

Gibt die zum Zeitpunkt der Erstellung festgelegte Kanalkapazität zurück.

  • 0 — ungepufferter (synchroner) Kanal: send() blockiert, bis der Empfänger bereit ist.
  • Positive Zahl — maximale Anzahl von Werten, die der Puffer gleichzeitig halten kann.

Die Kapazität ist für die gesamte Lebensdauer des Kanals festgelegt und ändert sich nicht.

Rückgabewerte ​

Die Pufferkapazität des Kanals (int).

Beispiele ​

Beispiel #1 Kapazität prüfen ​

php
<?php

use Async\ThreadChannel;

$unbuffered = new ThreadChannel();
echo $unbuffered->capacity(); // 0

$buffered = new ThreadChannel(64);
echo $buffered->capacity(); // 64

Beispiel #2 Adaptive Logik basierend auf dem Kanaltyp ​

php
<?php

use Async\ThreadChannel;

function describeChannel(ThreadChannel $ch): void {
    if ($ch->capacity() === 0) {
        echo "Ungepuffert: jedes send() blockiert, bis recv() aufgerufen wird\n";
    } else {
        $free = $ch->capacity() - $ch->count();
        echo "Gepuffert: Kapazität {$ch->capacity()}, {$free} Slot(s) frei\n";
    }
}

$ch = new ThreadChannel(8);
$ch->send('item');
describeChannel($ch); // "Gepuffert: Kapazität 8, 7 Slot(s) frei"

Siehe auch ​