09 2023 档案

摘要:## 1、标准原子类型 标准原子类型的定义位于头文件``内。原子操作的关键用途是取代需要互斥的同步方式,但假设原子操作本身也在内部使用了互斥,就很可能无法达到期望的性能提升。有三种方法来判断一个原子类型是否属于无锁数据结构: - 所有标准原子类型(`std::atomic_flag`除外,因为它必须 阅读全文
posted @ 2023-09-05 21:54 MoonZZZ 阅读(355) 评论(0) 推荐(0) 编辑
摘要:## 1、条件变量 当线程需要等待特定事件发生、或是某个条件成立时,可以使用条件变量`std::condition_variable`,它在标准库头文件``内声明。 ```c++ std::mutex mut; std::queue data_queue; std::condition_variab 阅读全文
posted @ 2023-09-04 21:05 MoonZZZ 阅读(138) 评论(0) 推荐(0) 编辑
摘要:## 1、使用互斥量 在C++中,我们通过构造`std::mutex`的实例来创建互斥量,调用成员函数`lock()`对其加锁,调用`unlock()`解锁。但通常更推荐的做法是使用标准库提供的类模板`std::lock_guard`,它针对互斥量实现了RAII手法:在构造时给互斥量加锁,析构时解锁 阅读全文
posted @ 2023-09-03 12:24 MoonZZZ 阅读(123) 评论(0) 推荐(0) 编辑
摘要:## 1、线程的基本管控 包含头文件``后,通过构建`std::thread`对象启动线程,任何可调用类型都适用于`std::thread`。 ```c++ void do_some_work(); struct BackgroundTask { void operator()() const; } 阅读全文
posted @ 2023-09-02 10:43 MoonZZZ 阅读(177) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示