12.6. 古いバージョンの C++ の使用
C++11 より前のバージョンでは、C++ のスレッドに対する標準サポートがありませんでした。スレッドに AMQ C++ を使用できますが、以下の制限があります。
-
コンテナーはスレッドを作成しません。
container::run()
を呼び出す単一スレッドのみを使用します。 -
container
およびwork_queue
を含む、AMQ C++ ライブラリークラスはいずれもスレッドセーフです。複数のスレッドでcontainer
を使用するには、外部ロックが必要です。唯一の例外はconnection::wake()
です。これは、古い C++ であってもスレッドセーフです。
container::schedule()
および work_queue
API は、C++11 lambda 関数を使用して作業単位を定義します。lambda をサポートしないバージョンの C++ を使用している場合は、代わりに make_work()
関数を使用する必要があります。