KomponentenThreadPool::getCompletedCount()

ThreadPool::getCompletedCount()

(PHP 8.6+, True Async 1.0)

php
public ThreadPool::getCompletedCount(): int

Gibt die Gesamtzahl der Aufgaben zurück, die seit der Erstellung des Pools von einem Worker vollständig ausgeführt wurden (erfolgreich oder mit einer Ausnahme). Dieser Zähler ist monoton steigend und wird niemals zurückgesetzt. Er wird durch eine atomare Variable gesichert und ist zu jedem Zeitpunkt genau.

Eine Aufgabe gilt als abgeschlossen, wenn der Worker die Ausführung beendet — unabhängig davon, ob sie einen Wert zurückgegeben oder eine Ausnahme geworfen hat.

Rückgabewert

int — Gesamtanzahl der abgeschlossenen Aufgaben seit der Pool-Erstellung.

Beispiele

Beispiel #1 Durchsatz verfolgen

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);
    echo "bisher abgeschlossen: ", $pool->getCompletedCount(), "\n"; // 0 oder mehr

    foreach ($futures as $f) {
        await($f);
    }

    echo "insgesamt abgeschlossen: ", $pool->getCompletedCount(), "\n"; // 6

    $pool->close();
});

Siehe auch