我正在使用scoped_lock
和mutex
来实现BlockingQueue posted in a different SO question的版本,但在boost中有两个不同的预编译头文件。
scoped_lock
可通过“boost / interprocessor / sync / scoped_lock.hpp”和“boost / thread / mutex.hpp”获得
mutex
可以通过“boost / thread / mutex.hpp”,“boost / signals2 / mutex.hpp”和“boost / thread / win32 / mutex.hpp”获得
我可以猜到“win32 / mutex.hpp”在某种程度上针对windows进行了优化,但其他的呢?他们之间有什么区别?
答案 0 :(得分:2)
signals2 :: mutex是signals2库的一部分,因此可能是专用于该库的专用互斥锁。
通用互斥锁是“boost / thread / mutex.hpp”,它应该是您使用的互斥锁。 “win32”版本将由通用文件自动包含,并包含Windows上互斥锁的代码。也就是说,通用头是OS特定类的包装器。