1

我正在使用scoped_lockmutex实现在另一个 SO question 中发布的 BlockingQueue版本,但是在 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 进行了优化,但是其他的呢?他们之间有什么区别?

4

1 回答 1

2

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

通用互斥锁是“boost/thread/mutex.hpp”之一,应该是您使用的那个。“win32”版本将自动包含在通用文件中,并包含 windows 上的互斥锁代码。也就是说,通用头文件是操作系统特定类的包装器。

于 2011-10-25T18:08:26.323 回答