1

別のSO質問に投稿されたバージョンのBlockingQueueを使用scoped_lockmutexて実装していますが、ブーストでは両方に複数の異なるプリコンパイル済みヘッダーがあります。

scoped_lock「boost/interprocessor / sync/scoped_lock.hpp」および「boost/thread/mutex.hpp」から入手できます。

mutex「boost/thread / mutex.hpp」、「boost / signal2 / mutex.hpp」、「boost / thread / win32/mutex.hpp」から入手できます。

「win32/mutex.hpp」はどういうわけかWindows用に最適化されていると思いますが、他のものはどうでしょうか。それらの違いは何ですか?

4

1 に答える 1

2

signal2 :: mutexはsignals2ライブラリの一部であるため、おそらくそのライブラリ専用の特別な目的のミューテックスです。

一般的なミューテックスは「boost/thread / mutex.hpp」のものであり、使用するものである必要があります。「win32」バージョンは、汎用ファイルに自動的に含まれ、Windows上のミューテックスのコードが含まれます。つまり、汎用ヘッダーはOS固有のクラスのラッパーです。

于 2011-10-25T18:08:26.323 に答える