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/config.hpp
在 boost 检测到线程支持时定义了宏 BOOST_HAS_THREADS
。用户可以通过在包含任何 boost 头文件之前定义 BOOST_DISABLE_THREADS 来全局禁用 boost 中的线程支持。
如果您已经在使用 Boost.Thread 库,您可能更愿意使用其 boost::mutex 类作为信号的互斥体类型。
如果您使用的信号仅由单个线程使用,您可能希望使用一个非线程安全的信号。在这种情况下,您可能更希望将 signals2::dummy_mutex 类用作信号的 Mutex
模板类型。
void lock();
锁定互斥体。
bool try_lock();
尝试非阻塞地锁定互斥体。
返回 |
成功时为 |
void unlock();
解锁互斥体。