社区
英特尔边缘计算技术
帖子详情
多核中的函数中局部变量是共享的吗?
modyaj
2012-03-18 04:50:34
举个例子:
void fun(){
int temp=0;
for(int i= 0 ; i<10;i++){
temp ++;
}
}
void main(){
#pragma omp parallel num_threads(2)
{
fun();
}
}
像这样情况下 fun中的temp是共享变量吗 会产生伪共享吗?
...全文
98
2
打赏
收藏
多核中的函数中局部变量是共享的吗?
举个例子: void fun(){ int temp=0; for(int i= 0 ; i<10;i++){ temp ++; } } void main(){ #pragma omp parallel num_threads(2) { fun(); } } 像这样情况下 fun中的temp是共享变量吗 会产生伪共享吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
modyaj
2012-03-20
打赏
举报
回复
非常感谢!!!
昵称很不好取
2012-03-18
打赏
举报
回复
局部变量,不用加锁,是可重入的
每个线程都有自己的堆栈,temp是各自的,不会冲突
多核
cpu调用的
函数
接口
多核
cpu都需要调用的
函数
接口在设计实现以及调用的时候需要注意 一些地方: 比如:现在有一个
函数
A,当前环境下有8个cpu; 由于每个cpu都会调用到该
函数
A,所以我们在向A传参数的时 候,参数的设计一定要谨慎实用
局部变量
,因为调用该
函数
的
函数
接 口B,只是负责向其传递参数,但是如果你使用
局部变量
,有可能参数 传入之后,有一个cpu处理完之后,就直接返回,从而释放了该局部
多任务全局
共享
变量问题
文章目录
共享
全局变量
共享
全局变量引起资源竞争解决方法-互斥锁互斥锁造成死锁问题 说明:
函数
中
全局变量加global,改变内存地址的时候需加global,如果修改了全局变量的内存地址改变了,必须使用global,如果仅仅修改了原来内存空间
中
的数据,此时不用必须使用global 数字,字符串,元组不可变,必须加global
共享
全局变量 import threading import time g_num = 100 def test1(temp): global g_num g_
总结:《C
中
static关键字》《C++
中
的static关键字》《线程与进程的区别》《gdb的调试》《Makefile的使用》
一,在C语言
中
,static关键字的作用如下: 1、在修饰变量的时,static修饰的静态
局部变量
只执行一次,而且延长了
局部变量
的生命周期,直到程序运行结束以后才释放。 2、static修饰全局变量的时,这个全局变量只能在本文件
中
访问,不能在其它文件
中
访问,即便是extern外部声明也不可以。 3、static修饰一个
函数
,则这个
函数
的只能在本文件
中
调用,不能被其他文件调用。Static修饰的局部...
【每日一题】(D0801)写一个宏返回结构体的地址
1、(多选)下列关于 arm 的 cortex-m 内核寄存器,下面说法正确的是() A 对于通用寄存器,arm内核在进入
中
断时只会将现场 R0~R3寄存器压入栈保护 B VTOR寄存器可以修改
中
断向量表入口地址 C PRIMASK 寄存器可以用来屏蔽除 NMI
中
断和 hardfault
中
断之外的所有
中
断 D R13为栈指针寄存器,其
中
MSP 寄存器是上电之后硬件自动写入 2、(多选) 对于嵌入式实时操作系统 RTOS,以下说法正确的是() A PTOS 相应
中
断时,
中
断
函数
中
的
JMM与
多核
CPU
并行导致的问题 众所周知,我们写的进程跑在CPU上,进程下线程作为CPU调度的基本单位,而当今CPU基本都是
多核
CPU也就是说可以实现线程并行。 由于CPU计算极快,快到从主内存加载一次变量都要经过很多个时钟周期,为了提高CPU的利用率,在CPU内部引入了快速缓存。 那么线程跑的时候
局部变量
跑没有问题,但线程
共享
变量就会出现并发问题,因为他们拿到的都是从主内存
中
读到的
共享
变量的副本。 假设变量X = 0
共享
,两个线程同时执行X++ 最后的结果可能就不是设计的2而是1。 因为X++需要先从主存
中
读
英特尔边缘计算技术
566
社区成员
7,027
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章