- 博客(5)
- 资源 (4)
- 收藏
- 关注
原创 volatile 关键字
被volatile 修饰的变量具有可见性与有序性。这也是我们使用volatile关键字的原因。我们先了解一下什么是可见性和有序性,就能明白什么时候可以使用volatile 关键字了。可见性在java的内存模型中,基于效率的原因,每个线程会从主内存中拷贝一份变量的副本到的工作内存中使用。这其中就有一些问题如果线程1拷贝了一个变量A到自己的工作内存中在线程1还未操作变量A的副本之前,线程...
2019-01-17 22:09:12 166
原创 JAVA并发编程之术语
目录在写java并发编程时,常常会用到一些定义的术语,在每篇博客中解释又嫌麻烦,不写吧怕以后理解起来又不看懂,谨单独起一篇把使用到的术语记录一遍。状态就是指变量,也可以说是内存,状态的改变就是变量值的改变。正确性当线程访问某个类,某段代码或某个状态,它们能表现出的行为或值与代码的编写者或阅读者认为的结果一致。这个正确性不是精确的,而是指我们心中对代码的一把尺子,我...
2019-01-11 22:37:26 178
原创 JAVA并发编程之竟态条件
java并发编程实战中的解释:当计算的正确性取决于多个线程的交替执行时序时,那么就会发生竟态条件。直接读来感觉不是那么直观,明白之后感觉再读感觉就理解了,直白的说就是如果一段程序被多个线程执行,线程执行的先后顺序不一致会导致最终的状态(结果)不同,我们就称这段代码有竟态条件。最常见的竟态条件类型就是“先检查后执行(Check-Then-Act)”操作,即通过一个可能失效的观测结果来决定...
2019-01-11 20:51:26 727 1
原创 内置锁(Synchronized)
什么是内置锁首先它是由java提供的关键synchronized来实现的,其次synchronized实现的锁在执行完修饰的代码块后自动释放锁的,相对于显示锁必须要手动释放锁所以内置锁也被成为隐式锁。内置锁是由JVM实现的,jvm能基于synchronized锁做一些优化,比如增加锁的粒度(锁粗化)、锁消除。内置锁的特性相对显示锁来说,内置锁还是过重,因为内置锁是一个互斥锁,不仅...
2019-01-05 16:30:08 7434 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人