Boost C++ Libraries/Boost.Asio

Boost.Asio 색인 - static_thread_pool

까마귀75 2021. 3. 4. 15:00
728x90
반응형

static_thread_pool

typedef thread_pool static_thread_pool;

유 형

이 름 설 명
basic_executor_type 스레드 풀에 함수를 제출하는데 사용되는 실행기(executor)의 구현 유형이다.
execution_type 스레드 풀에 함수를 제출하는데 사용되는 실행기(executor)이다.
fork_event 포크 관련 이벤트 알림.
scheduler_type 스레드 풀에서 수신기를 예약하는데 사용되는 스케줄러이다.

멤버 함수

이 름 설 명
attach 현재 스레드를 풀에 연결한다.
executor 풀과 연결된 실행기(executor)를 얻어온다.
get_executor 풀과 연결된 실행기(executor)를 얻어온다.
join 스레드를 연결한다.
notify_fork fork 관련 이벤트를 execution_context에 알린다.
scheduler 풀과 연결된 스케줄러를 얻어온다.
stop 스레드를 중지한다.
thread_pool
[constructor]
자동으로 결정된 스레드 수로 풀을 생성한다.

지정된 스레드 수로 풀을 생성한다.
wait 스레드가 완료될 때가지 대기한다.
~thread_pool
[destructor]
소멸자

보호된(protected) 멤버 함수

이 름 설 명
destroy 컨텍스트에서 모든 서비스를 제거한다.
shutdown 컨텍스트에서 모든 서비스를 종료한다.

Friends

이 름 설 명
add_service (더 이상 사용되지 않음: make_service() 사용) execution_context에 서비스 개체를 추가한다.
has_service execution_context에 지정된 서비스 유형이 포함되어 있는지 확인한다.
make_service 서비스 개체를 생성하여 execution_context에 추가한다.
use_service 주어진 유형에 해당하는 서비스 개체를 얻어온다.

스레드 풀 클래스는 고정된 수의 스레드 중 하나에서 함수를 실행할 수 있는 실행 컨텍스트이다.

스레드 풀에 작업 제출

스레드 풀에 함수를 제출하려면 dispatch, post, defer 함수를 사용한다.
예를 들면:

void my_task()
{
  ...
}

...

// Launch the pool with four threads.
boost::asio::thread_pool pool(4);

// Submit a function to the pool.
boost::asio::post(pool, my_task);

// Submit a lambda object to the pool.
boost::asio::post(pool,
    []()
    {
      ...
    });

// Wait for all tasks in the pool to complete.
pool.join();

요구 사항

일반 헤더: boost/asio/static_thread_pool.hpp
편의 헤더: boost/asio.hpp

Boost.Asio 홈

728x90
반응형