12.6. 이전 버전의 C++ 사용
C++ 11 이전에는 C++에서 스레드에 대한 표준 지원이 없었습니다. AMQ C++를 스레드와 함께 사용할 수 있지만 다음과 같은 제한 사항이 있습니다.
-
컨테이너는 스레드를 생성하지 않습니다.
container::run()
을 호출하는 단일 스레드만 사용합니다. -
AMQ C++ 라이브러리 클래스는 스레드로부터 안전하지 않습니다(
컨테이너
및work_queue
포함). 여러 스레드에서컨테이너
를 사용하려면 외부 잠금이 필요합니다. 유일한 예외는connection::wake()
입니다. 이는 이전 C++에서도 스레드로부터 안전합니다.
container::schedule()
및 work_queue
API는 C++11 람다 함수를 사용하여 작업 단위를 정의합니다. 람다를 지원하지 않는 C++ 버전을 사용하는 경우 대신 make_work()
함수를 사용해야 합니다.