std::mutex
来源:互联网 发布:windows无权访问 编辑:程序博客网 时间:2024/06/05 10:11
mutex代码示例
#include <iostream>#include <mutex>#include <thread>using namespace std;volatile int counter(0);std::mutex mu;void count(){ for(int i = 0;i < 10000;++i) { if(mu.try_lock()) { counter++; mu.unlock(); } }}int main(int argc, char *argv[]){ cout << "Hello World!" << endl; std::thread myThreads[10]; for(int i = 0;i < 10; ++i) myThreads[i] = std::thread(count); for(auto& mythread : myThreads) { mythread.join(); } std::cout << "counter = " << counter;; return 0;}
- std::mutex不允许拷贝构造,也不允许 move 拷贝,最初产生的 mutex 对象是处于 unlocked 状态的。
- lock(),调用线程将锁住该互斥量。线程调用该函数会发生下面 3 种情况:(1). 如果该互斥量当前没有被锁住,则调用线程将该互斥量锁住,直到调用 unlock之前,该线程一直拥有该锁。(2). 如果当前互斥量被其他线程锁住,则当前的调用线程被阻塞住。(3). 如果当前互斥量被当前调用线程锁住,则会产生死锁(deadlock)。
- unlock(), 解锁,释放对互斥量的所有权。
阅读全文
0 0
- std::Mutex
- std::mutex
- std mutex
- std::mutex 、std::lock_guard
- std::thread and std::mutex
- std::thread and std::mutex
- std::mutex的用法
- std::mutex详解
- std::mutex与pthread mutex区别
- std::mutex std::unique_lock std::lock_guard std::recursive_mutex的理解
- std::mutex 和 std::lock_guard 小例子
- std::mutex 和 std::lock_guard 小例子
- C++11 中的std::mutex
- C++11并发之std::mutex
- C++11多线程(三):std:mutex
- C++11多线程之std::mutex
- C++ std::mutex 与 const函数
- C++11中std::mutex的使用
- mysql中utf8和utf8mb4区别
- day_02_链表、二叉树
- Python爬虫基础实战——用爬虫来自动翻译英文文档
- ARM NEON编译优化
- 装逼文本编辑器Atom + activate-power-mode插件
- std::mutex
- 自考—《信息系统开发与管理》
- 【并查集&路径压缩 模板】
- MyBatis 3.3.1 批量插入多行回写自增id
- redis配置数据库数量
- python opencv minAreaRect 生成最小外接矩形
- BITS_TO_LONGS宏的作用
- form表单的讲解
- CentOS服务器下对mysql的优化