boost :: signals2 :: mutex和boost :: thread :: mutex有什么区别?

时间:2011-10-25 17:47:21

标签: c++ boost mutex boost-thread scoped-lock

我正在使用scoped_lockmutex来实现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进行了优化,但其他的呢?他们之间有什么区别?

1 个答案:

答案 0 :(得分:2)

signals2 :: mutex是signals2库的一部分,因此可能是专用于该库的专用互斥锁。

通用互斥锁是“boost / thread / mutex.hpp”,它应该是您使用的互斥锁。 “win32”版本将由通用文件自动包含,并包含Windows上互斥锁的代码。也就是说,通用头是OS特定类的包装器。