ThreadPool::getRunningCount()
(PHP 8.6+, True Async 1.0)
php
public ThreadPool::getRunningCount(): intGibt die Anzahl der Aufgaben zurück, die derzeit von einem Worker-Thread ausgeführt werden (d. h. aus der Warteschlange entnommen und noch nicht abgeschlossen). Der Maximalwert ist durch die Anzahl der Worker begrenzt. Dieser Zähler wird durch eine atomare Variable gesichert und ist zu jedem Zeitpunkt genau.
Rückgabewert
int — Anzahl der Aufgaben, die aktuell auf allen Worker-Threads ausgeführt werden.
Beispiele
Beispiel #1 Laufenden Zähler während der Aufgabenausführung beobachten
php
<?php
use Async\ThreadPool;
use function Async\spawn;
use function Async\await;
use function Async\delay;
spawn(function() {
$pool = new ThreadPool(workers: 3);
$futures = [];
for ($i = 0; $i < 6; $i++) {
$futures[] = $pool->submit(function() {
$t = microtime(true);
while (microtime(true) - $t < 0.1) {}
return 'done';
});
}
delay(10); // Worker Zeit zum Starten geben
echo "worker: ", $pool->getWorkerCount(), "\n"; // worker: 3
echo "laufend: ", $pool->getRunningCount(), "\n"; // laufend: 3
foreach ($futures as $f) {
await($f);
}
echo "laufend: ", $pool->getRunningCount(), "\n"; // laufend: 0
$pool->close();
});Siehe auch
- ThreadPool::getPendingCount() — Aufgaben in der Warteschlange
- ThreadPool::getCompletedCount() — Insgesamt abgeschlossene Aufgaben
- ThreadPool::getWorkerCount() — Anzahl der Worker
- Async\ThreadPool — Komponentenübersicht