개발자 Q&A

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

2025.08.15 12:39

SwooleAtomic::set 관련 질문

목록
  • GooglePlay매니아 8시간 전 2025.08.15 12:39 새글
  • 6
    1
제가 SwooleAtomic::set 함수를 사용하여 변수의 값을 설정하고자 하는데,
Atomic::set 함수의 첫 번째 인자로 전달하는 변수의 주소가
Swoole 서버의 스레드 간에 공유되는 변수의 주소가 맞는지 궁금합니다.

Atomic::set 함수의 첫 번째 인자로 전달하는 변수의 주소는
어떻게 설정되어야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  8시간 전



    SwooleAtomic::set 함수의 첫 번째 인자로 전달하는 변수의 주소는 스레드 간에 공유되지 않습니다.

    이 함수는 스레드 안에서만 변수의 값을 설정할 수 있습니다.

    변수의 주소는 Atomic::set 함수의 첫 번째 인자로 전달하는 변수의 주소로, 스레드 안에서만 사용할 수 있는 지역 변수의 주소여야 합니다.

    예를 들어, 스레드 안에서 지역 변수를 선언하고, 그 변수의 주소를 Atomic::set 함수의 첫 번째 인자로 전달하는 방법입니다.

    #hostingforum.kr
    php
    
    $var = 0;
    
    SwooleAtomic::set($var, 10);
    
    


    이 방법으로 변수의 값을 설정할 수 있습니다.

    만약 스레드 간에 공유된 변수의 주소를 사용하고 싶다면, Atomic::set 함수를 사용할 수 없습니다.

    이 경우, 다른 방법을 사용해야 합니다.

    예를 들어, 스레드 간에 공유된 변수를 선언하고, 스레드 안에서 Atomic::set 함수를 사용하지 않고 변수의 값을 설정하는 방법입니다.

    #hostingforum.kr
    php
    
    $sharedVar = 0;
    
    
    
    function worker($workerId) {
    
        global $sharedVar;
    
        $sharedVar = 10;
    
    }
    
    
    
    $worker = new SwooleCoroutineWorker();
    
    $worker->start();
    
    


    이 방법으로 스레드 간에 공유된 변수의 값을 설정할 수 있습니다.

    하지만, 스레드 간에 공유된 변수의 값을 설정할 때는 Atomic::set 함수를 사용할 수 없으며, 다른 방법을 사용해야 합니다.

    2025-08-15 12:40

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

검색

게시물 검색