OpenMP 线程互斥锁
OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序。
多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互斥锁,就是只有获得互斥锁的线程可以执行,其他线程阻塞。
1.OpenMP中的互斥锁函数
void omp_init_lock(omp_lock *) 初始化互斥器
void omp_destroy_lock(omp_lock *) 销毁互斥器
void omp_set_lock(omp_lock *) 获得互斥器
void omp_unset_lock(omp_lock *) 释放互斥器
bool omp_test_lock(omp_lock *) 试图获得互斥器,如果获得成功返回true,否则返回false
2.代码实例
1 #include <iostream> 2 #include <omp.h> 3 4 static omp_lock_t lock; 5 void putMes(int i) 6 { 7 std::cout << i << ":AA" << std::endl; 8 omp_set_lock(&lock); //获得互斥器 9 sleep(1); 10 std::cout << i << ":BB1" << std::endl; 11 sleep(1); 12 std::cout << i << ":BB2" << std::endl; 13 omp_unset_lock(&lock); //释放互斥器 14 } 15 16 int main() 17 { 18 omp_init_lock(&lock); // 初始化互斥锁 19 #pragma omp parallel for 20 for (int i = 0; i < 4; ++i) 21 { 22 putMes(omp_get_thread_num()); 23 } 24 omp_destroy_lock(&lock); //销毁互斥器 25 return 0; 26 }
编译执行(可以看到BB1,BB2总是顺序一起输出的):
OpenMP 线程互斥锁相关推荐
- Linux线程-互斥锁pthread_mutex_t
Linux线程-互斥锁pthread_mutex_t 在线程实际运行过程中,我们经常需要多个线程保持同步.这时可以用互斥锁来完成任务:互斥锁的使用过程中,主要有pthread_mutex_init, ...
- Python 线程互斥锁 Lock - Python零基础入门教程
目录 一.前言 二.Python 线程共享全局变量 三.Python 线程互斥锁 1.创建互斥锁 2.锁定资源/解锁资源 四.Python 线程死锁 五.重点总结 六.猜你喜欢 一.前言 在前一篇文章 ...
- python-生产者消费者模型_线程_线程互斥锁_GIL全局解释器锁
进程 1. 开启进程的两种方式 2. 进程对象其他属性和方法-pid: 进程id号 os.getpid()-ppid: 父进程id号 os.getppid() -is_alive(): 当前进程是否存 ...
- linux进程线程同步之 - POSIX线程互斥锁
POSIX线程互斥锁 使用范围:线程同步 本文转自:http://blog.csdn.net/jiebaoabcabc/article/details/37914769 一.函数介绍 1.初始化互斥锁 ...
- 网络编程-线程,守护线程,线程互斥锁-26
网络编程-线程,守护线程,线程互斥锁-26 内容: 进程部分: 进程间通信=>IPC 生产者消费者模型() 线程部分: 1. 线程理论() 2.开启线程的两种方式() 3. 线程对象其他相关的属 ...
- android 线程互斥锁,线程锁(互斥锁Mutex)及递归锁
一.线程锁(互斥锁) 在一个程序内,主进程可以启动很多个线程,这些线程都可以访问主进程的内存空间,在Python中虽然有了GIL,同一时间只有一个线程在运行,可是这些线程的调度都归系统,操作系统有自身 ...
- Linux线程-互斥锁pthread_mutex_t
在线程实际运行过程中,我们经常需要多个线程保持同步.这时可以用互斥锁来完成任务:互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthrea ...
- 信号量与线程互斥锁的区别
援引CU上一篇帖子的内容: "信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里).而互斥锁 ...
- linux线程互斥锁
linux线程同步(1)-互斥量 一.概述 互斥量是线程同步的一种机制,用来保护多线程的共享资源.同一时刻,只允许一个线程对临界区进行访问. 互斥量的工作流程:创建一个互斥量,把这个互斥量的加锁调用放 ...
最新文章
- 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
- 网站服务器可以用虚拟主机吗,做网站虚拟主机可以用服务器吗
- 怎么自学《现代控制理论》
- SpringMVC - 1.DispatcherServlet
- OP_Codes为BCH带来更多更好的解决方案
- 云服务器怎么设置数据库文件,怎么设置云服务器数据库
- 编译问题收集、汇总与积累
- 【数理知识】《积分变换与场论》王振老师-目录
- OpenCASCADE:Modeling Data之边界框
- sas Data步数据读取流程详解
- 计算机网络实验ifconfig,《计算机网络》操作系统网络配置实验.doc
- 用css实现星级评分效果
- Stack Overflow 2021开发者调查报告 - 数据库篇!
- Flutter功能 中ListView和GridView嵌套报错?【教你一步搞定】
- Ant + Jenkies +Tomcat 自动构建部署Web项目
- python etree创建xml_python-如何使用xml.etree.Element编写XML声明
- LBP特征提取原理和python库代码
- 最大规模开源中文语音数据集 — aidatatang_1505zh及其语音识别基准实验详解
- 深度Linux怎样关闭休眠,deepin如何休眠,
- 慕课网-安卓攻城狮视频学习及练习(一)
热门文章
- Allegro如何导出生产文件
- 组态王6.55安装教程
- 4gl 上传文件_文件管理密码相册工具app下载-文件管理密码相册工具app安卓版下载v1.8...
- python之穿越火线游戏代码_Python实现拼字游戏与代码重构
- 有源降噪装置专利(转)
- 从民宅到独栋大厦 我们搬家啦!
- Kotlin实践(3)-入口 函数
- python3随笔-特征值,特征向量,逆矩阵
- 【学术相关】U.S.News正式发布最新的2022最佳全球院校排名
- 【时间序列】再次出发!FaceBook 开源一站式服务时序利器 Kats !