摘要:
概述 创建异步值 使用boost::promise或boost::packagedd_task可以设置future的值 经常有人问:“怎么从线程返回一个值?”,这就是答案:将要运行的函数包装在boost::packaged_task,并传入线程的构造函数 int calculate_the_answ 阅读全文
摘要:
概要 namespace boost { enum class cv_status; { no_timeout, timeout }; class condition_variable; class condition_variable_any; void notify_all_at_thread_ 阅读全文
摘要:
mutex类 boost::mutex实现Lockable概念,提供独占互斥量。 timed_mutex类 boost::timed_mutex实现TimedLockable概念,提供独占互斥量。 recursive_mutex类 boost::recursive_mutex实现Lockable概念 阅读全文
摘要:
类模板unique_lock boost::unique_lock较boost::lock_guard复杂,它不但提供RAII风格锁定,还提供多种锁定选项。 boost::unique_lock的模型由传入参数实现的模型来决定。 如: boost::unique_lock<boost::timed_ 阅读全文
摘要:
lock_guard模板 boost::lock_guard 构造时提供实现Lockable概念的对象作为参数,获得所有权 析构时释放所有权 提供RAII风格的锁定,实现锁和解锁的异常安全 lock_guard(Mutex& m_, adopt_lock_t)允许lock_guard获得线程已经持有 阅读全文
摘要:
锁的选项有3个结构类型以及3个它们的常量 struct defer_lock_t {}; struct try_to_lock_t {}; struct adopt_lock_t {}; const defer_lock_t defer_lock; const try_to_lock_t try_t 阅读全文
摘要:
互斥对象有利于实现多线程中数据的线程安全。 线程调用锁函数来获得互斥对象的所有权,调用对应的解锁函数来放弃所有权。 互斥量可以是递归或非递归的,并且可以同时把所有权赋给多个线程。 Boost.Thread提供独占的递归、非递归互斥量,以及共享(多读单一写)互斥量。 BasicLockable概念 B 阅读全文