5

boost::interprocess:: named_semaphoreの使用方法を示す良い例を見つけることができませんでした (Boost Web サイトでも)。

私はinterprocess_semaphoreについて何かを見ることができましたが、それらはかなり異なっているようで、一方に示されていることが他方にも当てはまるかどうかはわかりません。

そのような例/tutorials/documentationへのリンクを誰か教えてもらえますか?

ありがとうございました。

4

1 に答える 1

2

との主な違いは、interprocess_semaphoreが共有メモリを使用して共有されていることです。ここで、asは匿名ではなく名前で参照されるため、構築 (構築を使用) する必要も、共有メモリに格納する必要もありません。named_semaphoreinterprocess_semaphorenamed_semaphore

名前付き同期メソッドは、異なるオブジェクトを使用して同じリソースにアクセスしますが、同じリソースを使用しています。匿名同期メソッドは、同じリソースにアクセスするために、shared_memory または他のメカニズムで同じオブジェクトを共有する必要があります。

これは、コンストラクターが 1 つしかないnamed_semaphoreのに対し、参照された同期メソッドを開くか作成するコンストラクターが 3 つあることを意味します。interprocess_semaphore

どちらのセマフォ タイプもpost、 、waittry_waitおよびtimed_waitを期待どおりに実装します。

詳細については、こちらこちらをご覧ください。

を使用する一例は、ここnamed_semaphoreで入手できます

于 2012-02-19T03:11:43.827 に答える