设为首页 加入收藏

TOP

Java多线程之内存可见性
2017-03-01 08:15:32 】 浏览:295
Tags:Java 线程 内存 可见

volatile不需要加锁,比synchronized更轻量级,不会阻塞线程,所以volatile执行效率更高;
从内存可见性角度看,volatile读相当于加锁,volatile写相当于解锁;
synchronized既能保证可见性,又能保证原子性,而volatile只能保证可见性,无法保证原子性;


synchronized能够保证锁内操作的原子性(同步),并且也具备内存可见性的特性


.


在读写操作方法加入synchronized关键字,使其变成安全的代码:


还有一种特殊的情况,就是还未执行写操作,先执行读操作,
这种情况也是result为0,但是由于不是因为线程交叉执行而导致的,所以使用synchronized关键字没有作用
避免这种情况的话,可以使用sleep()使其休眠,代码如下:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言的基本概念 下一篇C/C++程序运行时进程的内存分布情..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目