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
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 색인 - io_context::stop (0) | 2021.03.05 |
---|---|
Boost.Asio 색인 - steady_timer (0) | 2021.03.04 |
Boost.Asio 색인 - ssl::verify_peer (0) | 2021.03.04 |
Boost.Asio 색인 - ssl::verify_none (0) | 2021.03.04 |
Boost.Asio 색인 - ssl::verify_mode (0) | 2021.03.04 |