Boost C++ 库

...是世界上最受推崇、设计最精湛的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

Class mutex - Boost C++ 函数库
PrevUpHomeNext

Class mutex

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();

尝试非阻塞地锁定互斥体。

返回

成功时返回 true

void unlock();

解锁互斥体。


PrevUpHomeNext