라이브러리

[PHP] Fiber::isRunning - Fiber가 실행 중인지 확인합니다.




PHP의 Fiber와 Fiber::isRunning


PHP 8.1 버전부터 PHP는 Fiber라는 기능을 제공합니다. Fiber는 코루틴을 지원하는 기능으로, 비동기적으로 코드를 실행할 수 있습니다. Fiber는 PHP의 스레드와 유사하지만, 스레드와 달리 가벼운 프로세스입니다.

Fiber::isRunning() 함수는 현재 실행 중인 Fiber를 확인하는 함수입니다. 이 함수는 현재 실행 중인 Fiber의 ID를 반환합니다. 만약 현재 Fiber가 실행 중이지 않다면, NULL을 반환합니다.

예제


#hostingforum.kr
php

use Fiber;



function main() {

    echo "Main Fiber ID: " . Fiber::getCurrentThreadId() . "
";



    $fiber = Fiber::new(function () {

        echo "Child Fiber ID: " . Fiber::getCurrentThreadId() . "
";

        Fiber::suspend();

        echo "Child Fiber ID (after suspend): " . Fiber::getCurrentThreadId() . "
";

    });



    $fiber->start();



    echo "Main Fiber ID (after start): " . Fiber::getCurrentThreadId() . "
";



    Fiber::resume($fiber);



    echo "Main Fiber ID (after resume): " . Fiber::getCurrentThreadId() . "
";



    echo "Fiber::isRunning(): " . (Fiber::isRunning() ? 'true' : 'false') . "
";

}



main();





위의 예제에서, `Fiber::isRunning()` 함수는 현재 실행 중인 Fiber를 확인합니다. `Fiber::resume($fiber)` 함수를 호출하면, Child Fiber가 다시 실행되며, `Fiber::isRunning()` 함수는 true를 반환합니다.

결과


#hostingforum.kr


Main Fiber ID: 1

Child Fiber ID: 2

Main Fiber ID (after start): 1

Child Fiber ID (after suspend): 2

Main Fiber ID (after resume): 1

Fiber::isRunning(): true



Fiber::isRunning() 함수의 사용 사례


Fiber::isRunning() 함수는 현재 실행 중인 Fiber를 확인할 때 사용할 수 있습니다. 예를 들어, Fiber를 사용하여 비동기적으로 코드를 실행하고, Fiber가 실행 중인지 확인하고 싶을 때 사용할 수 있습니다.

#hostingforum.kr
php

use Fiber;



function main() {

    $fiber = Fiber::new(function () {

        // 비동기적으로 코드를 실행합니다.

        Fiber::suspend();

    });



    $fiber->start();



    while (Fiber::isRunning()) {

        // 현재 Fiber가 실행 중인지 확인합니다.

        echo "Fiber is running...
";

        Fiber::yield();

    }



    echo "Fiber is not running...
";

}



main();



위의 예제에서, `Fiber::isRunning()` 함수를 사용하여 현재 Fiber가 실행 중인지 확인합니다. 만약 Fiber가 실행 중이면, "Fiber is running..."을 출력하고, Fiber가 실행 중이 아니라면 "Fiber is not running..."을 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 549 페이지

검색

게시물 검색