2017-09-26 7 views
1

ACEライブラリのサポートから、ライブラリのサポートを強化するためにコードを移動しています。私はACE_Semaphoreを置き換える必要があります。 C++ 11はセマフォーメソッドをサポートしていないようです。私はboostedでnamed_semaphoreを見た。私が見た別の選択肢は、POCOライブラリをインクルードする必要があるPOCOセマフォーに行くことでした。何が最善の方法であるかを教えてください。ACE_SEMAPHOREの代わりにboost named_semaphoreを使用して、ACEからライブラリを強化しようとしていますか?

編集:これはインプロセススレッドの同期用です。

答えて

2

短い答えは:はい。

内のプロセスの同期のために、あなたは、単にミューテックス+状態変数に1をエミュレートすることができた場合:

C++0x has no semaphores? How to synchronize threads?

注しかし、通常のミューテックス+条件変数は、具体的な条件として、行います通常はカウンターの形をとっていません。 (例:Synchronizing three threads with Condition Variable

プロセス間同期では、名前付きセマフォを使用します。例:How to limit the number of running instances in C++実装の違いがあることに注意してください。

1など。 boostではnamed_semaphoreが独自の共有リソースを割り当て、ACEでは既存の共有スペースから割り当てます。ブーストでは、プラットフォームが共有メモリのネイティブ同期プリミティブをサポートしている限り、明らかに可能です。

+0

インプロセス間通信用です。私は私の質問も編集します。情報をありがとう。 – C0D3R

関連する問題