저는 개발 단계에 있으며 C++에서 멀티 스레딩을 사용하여 일부 기능을 구현할 것을 고려하고 있습니다. 나는 멀티 스레딩의 기본에 익숙하지만 다른 사람들이 내 아이디어를 얻도록하고 싶다. 아직 멀티 스레딩 라이브러리를 선택하지 않았습니다 (Boost쪽으로 기울어 짐). 그러나 제 질문은 아마 선택한 라이브러리와 무관합니다.기본 C++ 멀티 스레딩
기본적으로 while 루프 (종료 될 때까지)에서 실행되며 다른 소프트웨어에서 채워지는 명령 대기열을 검사하는 클래스 (CommandGenerator라고 부름)가 있습니다. CommandGenerator가 대기열에서 메시지를 가져올 때마다 백그라운드에서 실행되는 스레드를 생성하고 대기열에서 꺼낸 데이터로 작업하기를 원합니다. 한편 CommandGenerator가 계속 실행되고 while 루프를 다시 돌아 다니며 새 메시지를 가져오고 다시 스레드를 다시 생성하려고합니다. 이것은 개념적으로 가능합니까? 코드를 반복하고 큐를 계속 확인하면서 생성 스레드가 완료 될 때까지 백그라운드에서 실행되도록 할 수 있습니까? CommandGenerator는 스레드를 제어 할 필요가 없습니다. 생성 된 후에는 독립적으로 실행할 수 있고 종료가 보장되지만 실행을 완료하는 데 최대 1 분이 걸릴 수 있습니다 (실행하기 전에 대기열에서 꺼내 진 메시지에 지정된 일정 시간 대기).
모든 의견을 환영합니다.
빌트인 C++ 11의'threading' 모듈을 사용하실 것을 권장합니다. – Elazar
C++에는 표준 라이브러리에 스레드 지원이 포함되어 있습니다. ''헤더를 참조하십시오. –
Producer-Consumer 또는 Thread Pool 패턴과 같은 멀티 스레딩 개념에 익숙합니까? –