В чем разница между boost :: signal2 :: mutex и boost :: thread :: mutex? - PullRequest
1 голос
/ 25 октября 2011

Я использую scoped_lock и mutex для реализации версии BlockingQueue, опубликованной в другом вопросе SO , но есть несколько разных предварительно скомпилированных заголовков для них обоих в boost.

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, но чтоо других?Какая разница между ними?

1 Ответ

2 голосов
/ 25 октября 2011

Сигналы2 :: мьютекс являются частью библиотеки сигналов2, поэтому, предположительно, мьютекс специального назначения только для этой библиотеки.

Универсальный мьютекс - это «boost / thread / mutex.hpp» и должен быть тем, который вы используете. Версия "win32" будет автоматически включена в общий файл и содержит код для мьютексов в Windows. То есть универсальный заголовок является оберткой для определенных классов ОС.

...