^按位异或#include <stdio.h>#include <omp.h>static int data = https://www.huyubaike.com/biancheng/1;int main() {#pragma omp parallel num_threads(2) reduction(^:data){printf("data = https://www.huyubaike.com/biancheng/%d tid = %d/n", data, omp_get_thread_num());if(omp_get_thread_num() == 0) {data = https://www.huyubaike.com/biancheng/8;}else if(omp_get_thread_num() == 1){data = 12;}}printf("data = https://www.huyubaike.com/biancheng/%d/n", data);return 0;}
上面的程序的输出结果如下所示:
data = https://www.huyubaike.com/biancheng/0 tid = 0data = 0 tid = 1data = 5
各个数据的比特位表示:
0= 0000_0000_0000_0000_0000_0000_0000_00001= 0000_0000_0000_0000_0000_0000_0000_00018= 0000_0000_0000_0000_0000_0000_0000_100012 = 0000_0000_0000_0000_0000_0000_0000_11005= 0000_0000_0000_0000_0000_0000_0000_0101
大家可以自己对照的进行异或操作,得到的结果是正确的 。
总结在本篇文章当中我们主要使用一个例子介绍了如何解决并发程序当中的竞争问题,然后也使用了 reduction 子句去解决这个问题,随后介绍了在 OpenMP 当中 reduction 各种规约符号的使用!
在本篇文章当中主要给大家介绍了 OpenMP 的基本使用和程序执行的基本原理,在后续的文章当中我们将仔细介绍各种 OpenMP
的子句和指令的使用方法 , 希望大家有所收获!
更多精彩内容合集可访问项目:https://github.com/Chang-LeHung/CSCore
关注公众号:一无是处的研究僧,了解更多计算机(Java、Python、计算机系统基础、算法与数据结构)知识 。
推荐阅读
- centos使用lftp备份文件
- 金铲铲之战2022.8.11更新维护内容一览
- 汉字魔法第60关怎么过
- 第4版 高性能MySQL 第一章 MySQL架构 读书笔记
- 半自动版本 PXE批量装windows
- 关于Docker的一些事--Docker概述
- 纸嫁衣4第一章异途通关流程图文攻略-纸嫁衣4红丝缠第一章怎么过
- 洛克王国2022扇谜挑战活动猜谜语答案一览-洛克王国扇谜挑战攻略大全
- 小米11使用感受_小米11使用测评
- 移动彩铃怎么设置(打电话对方听到的彩铃设置教程)