boost::signals2::mutex — 一个仅限头文件的互斥体,实现了 Boost.Thread 的 Lockable 概念。
// In header: <boost/signals2/mutex.hpp> class mutex { public: void lock(); bool try_lock(); void unlock(); };
mutex 类实现了 Boost.Thread 的 Lockable 概念,并且是 signals 的默认 Mutex 模板参数类型。如果 boost 检测到您的编译器支持线程,mutex 类将在 Windows 上映射到 CRITICAL_SECTION,在 POSIX 上映射到 pthread_mutex。如果不支持线程,mutex 的行为将类似于 dummy_mutex。当 boost 检测到线程支持时,头文件 boost/config.hpp 会定义宏 BOOST_HAS_THREADS。用户可以在包含任何 boost 头文件之前通过定义 BOOST_DISABLE_THREADS 来全局禁用 boost 中的线程支持。
如果您已经在使用 Boost.Thread 库,您可能希望改用它的 boost::mutex 类作为您的 signals 的互斥体类型。
如果信号仅由单个线程使用,您可能希望使用线程不安全的信号。在这种情况下,您可能希望使用 signals2::dummy_mutex 类作为您信号的 Mutex 模板类型。
void lock();
锁定互斥体。
bool try_lock();
尝试非阻塞地锁定互斥体。
返回 |
成功时返回 |
void unlock();
解锁互斥体。