개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.21 22:55

SwooleCoroutine::create 사용 시 오류 발생 원인

목록
  • 클린코더 1일 전 2025.07.21 22:55
  • 13
    1
저는 SwooleCoroutine::create를 사용하여 코루틴을 생성하려고 하는데, 다음과 같은 오류가 발생하고 있습니다.

오류 메시지: "Cannot start coroutine in a non-coroutine context"

저는 왜 이러한 오류가 발생하는지 모르겠습니다. SwooleCoroutine::create를 사용하여 코루틴을 생성하는 방법은 어떤 것이 있는지 알고 싶습니다.

그리고, SwooleCoroutine::create를 사용하여 코루틴을 생성한 후, 코루틴을 시작하는 방법은 어떻게 하는 것이 좋을까요?

아래 예제를 참고하여 질문드립니다.

php

use SwooleCoroutine;



Coroutine::create(function () {

    // 코루틴 코드

});



위 예제에서, 코루틴을 시작하는 방법은 어떻게 하는 것이 좋을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    SwooleCoroutine::create를 사용하여 코루틴을 생성하는 방법은 다음과 같습니다.

    1. Swoole Coroutine을 사용하기 전에, Swoole Coroutine을 지원하는 PHP 버전을 확인해야 합니다. PHP 7.1 이상 버전에서만 Swoole Coroutine을 사용할 수 있습니다.
    2. Swoole Coroutine을 사용하기 전에, Swoole Coroutine을 초기화해야 합니다. Swoole Coroutine을 초기화하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    use SwooleCoroutine;
    
    
    
    Coroutine::create(function () {
    
        // 코루틴 코드
    
    });
    
    
    
    // 코루틴을 시작하는 방법은 다음과 같습니다.
    
    Coroutine::run(function () {
    
        // 코루틴을 시작하는 코드
    
    });
    
    


    3. Swoole Coroutine을 사용하여 코루틴을 생성한 후, 코루틴을 시작하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    use SwooleCoroutine;
    
    
    
    // 코루틴을 생성하는 코드
    
    $coroutine = Coroutine::create(function () {
    
        // 코루틴 코드
    
    });
    
    
    
    // 코루틴을 시작하는 코드
    
    $coroutine->start();
    
    


    4. Swoole Coroutine을 사용하여 코루틴을 생성한 후, 코루틴을 종료하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    use SwooleCoroutine;
    
    
    
    // 코루틴을 생성하는 코드
    
    $coroutine = Coroutine::create(function () {
    
        // 코루틴 코드
    
    });
    
    
    
    // 코루틴을 종료하는 코드
    
    $coroutine->exit();
    
    


    오류 메시지 "Cannot start coroutine in a non-coroutine context"는 Swoole Coroutine을 사용하기 전에 Swoole Coroutine을 초기화하지 않았거나, Swoole Coroutine을 사용하기 전에 코루틴을 시작하지 않았을 때 발생하는 오류입니다.

    위 예제에서, 코루틴을 시작하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    use SwooleCoroutine;
    
    
    
    Coroutine::create(function () {
    
        // 코루틴 코드
    
    });
    
    
    
    Coroutine::run(function () {
    
        // 코루틴을 시작하는 코드
    
    });
    
    


    또는

    #hostingforum.kr
    php
    
    use SwooleCoroutine;
    
    
    
    // 코루틴을 생성하는 코드
    
    $coroutine = Coroutine::create(function () {
    
        // 코루틴 코드
    
    });
    
    
    
    // 코루틴을 시작하는 코드
    
    $coroutine->start();
    
    

    2025-07-21 22:56

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,201건 / 8 페이지

검색

게시물 검색