Thread::isRunning

(PHP 8.6+, True Async 1.0)

php
public Thread::isRunning(): bool

Возвращает true, если поток был запущен и ещё не завершил выполнение. Возвращает false, если поток уже завершён — успешно, с исключением или отменён.

Возвращаемое значение

booltrue, если поток выполняется; false, если завершён.

Примеры

Пример #1 Проверка состояния во время ожидания

php
<?php

use function Async\spawn;
use function Async\spawn_thread;
use function Async\await;

spawn(function() {
    $thread = spawn_thread(function() {
        // имитация длительной работы
        sleep(1);
        return "готово";
    });

    var_dump($thread->isRunning()); // bool(true)

    await($thread);

    var_dump($thread->isRunning()); // bool(false)
});

Пример #2 Опрос состояния в цикле

php
<?php

use function Async\spawn;
use function Async\spawn_thread;
use function Async\suspend;

spawn(function() {
    $thread = spawn_thread(function() {
        sleep(2);
        return 42;
    });

    while ($thread->isRunning()) {
        echo "Поток ещё работает...\n";
        suspend(); // отдаём управление планировщику
    }

    echo "Поток завершён. Результат: " . $thread->getResult() . "\n";
});

См. также