Boost.Fiber Running with worker threads


Running with worker threads - 작업자 스레드로 실행

📦 Keep workers running - 작업자를 계속 가동시키기

작업자 스레드가 사용되었지만 파이버가 생성되지 않거나 프레임워크의 일부(예: this_fiber::yield())가 터치된 경우 파이버 스케줄러가 인스턴스화되지 않습니다.


use_scheduling_algorithm<>()이 호출되면 파이버 스케줄러가 생성됩니다.
작업자 스레드가 단순히 반환하는 경우 스케줄러를 삭제하고 종료합니다.


작업자 스레드를 계속 실행하기 위해 스레드 스택과 연결된 파이버("메인" 파이버라고 함)가 차단됩니다.   예를 들어 "메인" 파이버는 'condition_variable'을 기다릴 수 있습니다.   정상적으로 종료하려면 'condition_variable'이 신호를 받고 "메인" 파이버가 반환됩니다.   작업자 스레드의 모든 파이버가 종료되면 스케줄러가 파괴됩니다.

📦 Processing tasks - 작업 처리

작업은 채널을 통해 전송될 수 있습니다.   작업자 스레드는 채널에서 작업(tasks)을 대기열에서 빼고 실행하는 파이버 풀을 실행합니다.   채널을 닫으면 종료 신호가 전달됩니다.

⚛ 원문

Email 답글이 올라오면 이메일로 알려드리겠습니다.