Boost C++ 库

…全球最受推崇、设计精良的 C++ 库项目之一。 Herb SutterAndrei AlexandrescuC++ Coding Standards

类 mutex - Boost C++ 函数库
PrevUpHomeNext

类 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/config.hpp 在 boost 检测到线程支持时定义了宏 BOOST_HAS_THREADS。用户可以通过在包含任何 boost 头文件之前定义 BOOST_DISABLE_THREADS 来全局禁用 boost 中的线程支持。

如果您已经在使用 Boost.Thread 库,您可能更愿意使用其 boost::mutex 类作为信号的互斥体类型。

如果您使用的信号仅由单个线程使用,您可能希望使用一个非线程安全的信号。在这种情况下,您可能更希望将 signals2::dummy_mutex 类用作信号的 Mutex 模板类型。

void lock();

锁定互斥体。

bool try_lock();

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

返回

成功时为 true

void unlock();

解锁互斥体。


PrevUpHomeNext