社区
进程/线程/DLL
帖子详情
多线程中volatile的应用
liuling_8008
2011-09-30 02:16:32
多个线程共享一块数据,如何保证使用的正确性。
我在数据操作的时候加锁,操作完毕解锁。数据定义的时候需要使用volatile关键字吗?
另外还需要其他的操作来保证操作的正确性吗?
...全文
112
4
打赏
收藏
多线程中volatile的应用
多个线程共享一块数据,如何保证使用的正确性。 我在数据操作的时候加锁,操作完毕解锁。数据定义的时候需要使用volatile关键字吗? 另外还需要其他的操作来保证操作的正确性吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuling_8008
2011-10-06
打赏
举报
回复
谢谢大家的回答。
加上的话可以做到每次这个值都不从寄存器中读出,都实际读他的值防止有变化,你特意加锁,当然就是不希望他被修改,当然加不加无所谓,因为如果你的代码无误的话都加锁了,那他就不会在一个线程里使用的时候被另一个线程修改
Kaile
2011-10-03
打赏
举报
回复
volatile 不是锁,起不到锁的作用。
xin_wu_hen
2011-09-30
打赏
举报
回复
既然已经使用锁了,就不必使用volatile了。
volatile只是告诉编译器不要对该变量做优化,以便每次都从内存中都内容。
有关该方面的详细描述,请参考《windows核心编程》。
多线程
-
volatile
详解
volatile
应该算是Java 后端面试的必考题,因为
多线程
编程基本绕不开它,很适合作为并发编程的入门题。 开场 面试官:你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强
中
单(钟馗不服)!哦,不对,...
C++
中
多线程
编程之
volatile
分析
volatile
是c++的关键字之一,其修饰的变量表示容易被...2:vs
中
,在同一个线程
中
,
volatile
修饰的变量的,对于其读操作,在其之后的所有写操作都会在读之前完成,不会被编译器优化乱序执行影响到,对于其写操作,所有
volatile
可见性 在
多线程
中
未生效
当时小年轻是为了 研究一下
volatile
的可见性在
多线程
当
中
的
应用
来操作代码的。 说到这里,就要说一说一这个
多线程
会遇到的一些问题。 首先,我们知道当一个线程运行到
中
途时突然睡眠了 ,这是另一个线程其实是可以...
c#
中
多线程
修饰符
volatile
volatile
是C#
中
用于控制同步的关键字,其意义是针对程序
中
一些敏感数据,不允许
多线程
同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,
volatile
是修饰变量的修饰符。 1、...
Java
多线程
8:
Volatile
原理和使用场景
前言:
volatile
关键字是Java提供的一种轻量级的同步机制,在并发编程
中
,它也扮演着比较重要的角色。一个硬币具有两面,
volatile
不会造成上下文切换的开销,但是它也并能像synchronized那样保证所有场景下的线程安全...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章