多线程知识(1)
来源:互联网 发布:北京汉朗网络信息科技 编辑:程序博客网 时间:2024/05/22 00:02
1、关于volatile
当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存;当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效。线程接下来将从主内存中读取共享变量。通过volatile可以解决内存可见性的问题。
2、关于锁
锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。当线程释放锁时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存中。当线程获取锁时,JMM会把该线程对应的本地内存置为无效。从而使得被监视器保护的临界区代码必须要从主内存中去读取共享变量。通过锁不仅仅可以保证代码执行的原子性,还可以解决内存可见性的问题。
0 0
- 多线程知识(1)
- Java多线程(五):多线程其他知识
- 多线程知识巩固 (一)
- 多线程知识巩固(2)
- 多线程知识巩固(三)
- 多线程知识巩固(四)
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- 多线程知识
- JAVA常用多线程知识大全(一)
- java多线程知识小抄集(一)
- java常用多线程知识大全(二)
- jpa 介绍
- 排序算法(九)——八大排序算法总结
- hdu 1285 确定比赛名次
- [leetcode]Merge k Sorted Lists
- 用O_APPEND标志open一个文件,能否用lseek在任意位置读写
- 多线程知识(1)
- 自定义actiongbar的layout和小知识点
- 黑马程序员-Java基础:设计模式总结
- POJ3038(Blue Jeans)
- 安卓中四种点击事件
- HDOJ 1869 六度分离(最短路--dijkstra)
- Android 事件分发机制详解
- oracle学习第一弹----逻辑存储结构
- AppDelegate.cpp文件详解