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()
関数を使用する必要があります。