Java并发基础(四)-volatile和synchronized
来源:互联网 发布:淘宝食品备案 编辑:程序博客网 时间:2024/05/30 02:26
0. 内存可见性
Java中,所有的变量都是存在主存中,这对所有的线程都是共享的,而且每个线程都有自己的工作内存。当线程与其他线程共享一个变量时,便会把主内存的变量复制到线程内存中去。当发生对变量的修改时,会同步到主内存,主内存再同步到其他线程内存中去。
可见性,指的是线程之间的可见性,一个线程的修改状态对另一个线程也是可见的。
1. volatile
volatile 修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
volatile是一种稍弱的同步机制,在访问volatile变量时不会执行枷锁操作,也就不会执行线程阻塞,是一种比synchronized更轻量的同步机制。
2. synchronized
synchronized修饰的语法块或者对象,同一时刻,只能被一个线程访问。常常被使用在单例中。
3. 总结
这两个关键字,大家够狠熟悉,我也只是了解点简单的用法。更深层次的还没学到。
0 0
- Java并发基础(四)-volatile和synchronized
- Java 并发编程(四)线程同步关键字volatile和synchronized
- java 并发之synchronized、volatile
- Java 并发---解读volatile synchronized
- java并发编程之1——synchronized和volatile
- Java并发机制深究1-synchronized和volatile
- java并发包学习系列:synchronized和volatile
- 学习java基础关键字之synchronized和volatile
- Java并发同步之synchronized与volatile
- 【并发】Volatile和synchronized的实现原理
- java中的volatile和synchronized
- Java中的volatile和synchronized
- Java volatile和synchronized 区别
- java中的volatile和synchronized
- java中的volatile和synchronized
- java 关键字synchronized和volatile
- java中的volatile和synchronized
- java中的volatile和synchronized
- spring集成监听器
- 服务器端脚本语言python
- 使用gradle管理ssm项目,出现mybatis的*.xml映射文件无法打入到war包里,解决办法!
- 神经网络梯度消失的解释
- 数字货币开发
- Java并发基础(四)-volatile和synchronized
- 【codeforces 368B Sereja and Suffixes】+ 预处理
- 使用 AngularJS & NodeJS 实现基于 token 的认证应用
- 自定义View---继承View
- 第五周
- 新手报道
- 百度音乐Api简单简单实用实例及封装
- HashMap的resize都干了啥
- iOS 企业 ipa发布方法