#include <stdio.h>
#include <stdlib.h>
#ifdef _OPENMP
#include <omp.h>
#endifint gval = 8;//gval是共享的void funcb(int *x, int *y, int z)//z是线程私有,z-i
{static int sv;//静态变量,共享的,在内存中只有一份,所以会引起冲突int u;//自变量,线程私有的u = (*y)*gval;//y本身是私有变量,其指向私有内存temp,*x = u + z;//x本身是私有的指针变量,但其指向的内存空间是共享的,私有指针指向共享内存
}void funca(int *a, int n)//a和n是共享的
{int i;//循环控制变量,所以线程私有int cc = 9;//在并行化语句外声明,是共享的#pragma omp parallel forfor(i = 0; i < n; i ++){int temp = cc;//并行化语句内部声明,是线程私有的funcb(&a[i], &temp, i);}
}void main(int argc, char *argv[])
{int n = 10;int *a = malloc(sizeof(int)*n);funca(a,n);
}

函数funca调用了funcb,并且在函数funca中使用了OpenMP进行并行化
全局变gval是共享的
在funca函数的内部,变量i由于是循环控制变量,因此是线程私有的
cc在并行化语句外声明,是共享的
temp在循环并行化语句内部的自动变量,是线程私有的
输入的指针变量a以及n是共享的,都在循环并行化语句之外声明
在函数 funcb内部,静态变量sv是共享的,在程序内存空间中只有一份,因此,在这种使用方式下会引起数据冲突
变量u是自动变量,由于被并行线程调用,是线程私有的
参数x的本身是私有的指针变量,但是*x指向的内存空间是共享的,其实际参数即函数funca中的a数组
参数y的本身是私有的指针变量,指向的*y也是私有的,其实际内存空间即私有的temp占用的空间
数值参数z是线程私有的。

OpenMP变量的私有与共享相关推荐

  1. 【Android 内存优化】Java 内存模型 ( Java 虚拟机内存模型 | 线程私有区 | 共享数据区 | 内存回收算法 | 引用计数 | 可达性分析 )

    文章目录 一. Java 虚拟机内存模型 二. 程序计数器 ( 线程私有区 ) 三. 虚拟机栈 ( 线程私有区 ) 四. 本地方法栈 ( 线程私有区 ) 五. 方法区 ( 共享数据区 ) 1. 方法区 ...

  2. Object-C 有私有变量?私有方法?

    从object-c 动态编译机制上讲是不存在私有变量和私有方法的.但是如果你不在.h中声明变量和方法在其它地方无法访问这些变量和方法,那么就成了私有的了.私有变量也可以使用@prviter进行修饰. ...

  3. java中子类对父类中的私有变量和私有方法有拥有权无使用权

    解释的我觉得也到位:子类拥对父类的私有变量具有拥有权 但是不具有使用权. 再和以前学的东西联系起来,总结如下: 1.不管父类中的成员变量是静态的还是非静态的,子类统统拥有(这里不用继承概念). 2.不 ...

  4. python定义私有变量的方法_Python面向对象程序设计之私有变量,私有方法原理与用法分析...

    本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法.分享给大家供大家参考,具体如下: 私有变量,私有方法:python的私有化是为了规划私有属性,避免非相关的访问[假如!我有老婆 ...

  5. Java的子类可以继承父类的私有变量和私有方法吗?

    答:实际上继承了. 父类的成员变量(包含私有变量)和成员方法地址(包含私有成员方法)都存放在子类对象中.父类的私有变量和私有方法虽然在子类对象中,但是对于子类对象而言是不可见的,无法直接访问和调用,必 ...

  6. 19. Python 类的重写   类的私有变量和私有方法

    1.类的重写 例子: class parent(object):name = 'parent'age = 100def __init__(self):print('my name is parent' ...

  7. java中私有变量和方法_Java 私有变量和私有方法

    作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...

  8. 什么是iu组装服务器,IU李知恩和“买家秀”在“教科书”级别的私有服务器共享是邻居...

    T恤在很多女孩心目中可以算是百搭,但是很难穿上一种新时尚单品,因为宽松的款式很难满足女孩突出身材的需求,而极高的舒适性也让她们无法完全抛弃T恤.如果你不知道热门的夏天在t恤上看起来如何好看,让我们看看 ...

  9. python_day6_面向对象的介绍/构造函数/类变量和实例变量/析构函数/私有属性和私有方法/继承、多继承和继承实例/多态

    python_面向对象的介绍/构造函数/类变量和实例变量/析构函数/私有属性和私有方法/继承.多继承和继承实例/多态 在这里得感谢,老师Alex金角大王(路飞学城IT) Python(给兄弟们挂个

最新文章

  1. Python 打印行列控制(API:pandas.set_option())
  2. 8.10 exec函数
  3. 用StringBuilder 或StringBuffer: 把字符串“ABCDE”,转变成字符串“A,B,C,D” (注意,最后一个E是需要删除的)
  4. 关于修改docker(非docker-engine)的日志引擎
  5. 今天将IE升级到了7.0版
  6. offsetX、clientX、screenX、pageX、layerX
  7. python期末考试及答案单引号、双引号和三引号_python脚本中单引号’ 双引号“ 三个单引号‘’‘ 三个双引号”“” 差别 及反斜杠的用法...
  8. kindle看pdf乱码_Kindle 中文书名 目录 乱码 解决办法
  9. Python 统计分析--单因素方差分析
  10. excel两列数据对比找不同_Excel两组数据做对比,用左右对比图才好看,操作简单又美观...
  11. 2023秋招大厂经典面试题及答案整理归纳(201-220)校招必看
  12. 小白算法学习 凸包 graham
  13. 卢卡斯定理 Lucas
  14. 电信云服务器重装系统,天翼云主机操作(二)
  15. 使用textCNN进行文本分类的原理
  16. asterisk安装、配置
  17. STM32驱动MPU6050基于IIC协议
  18. /etc/passwd
  19. 1091: 童年生活二三事(多实例测试)Python
  20. LK(Lucas-Kanade)稀疏光流法

热门文章

  1. [APIO2011] 方格染色
  2. 洛谷 P1313 计算系数 —— 水题
  3. 可输入可选择的input
  4. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
  5. 数学模型中包括多个变量的例子:称硬币
  6. ASP.NET中Session简单原理图
  7. 在搜索框自动输入文本_selenium自动化测试之常见的定位元素
  8. php 绘图 jpeg,PHP gd库增加jpeg支持
  9. python读取xml文件内容显示不全_python读取xml文件时的问题
  10. 计算机统考第五次作业操作题,计算机基础第5次作业 第五章 Powerpoint知识题