并发
jose0925
这个作者很懒,什么都没留下…
展开
-
java并发-CAS的原理
总线锁: 所谓总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占使用共享内存缓存锁:“缓存锁定”就是如果缓存在处理器缓存行中内存区域在LOCK操作期间被锁定,当它执行锁操作回写内存时,处理器不在总线上声明LOCK#信号,而是修改内部的内存地址,并通过它的缓存一致性机制来保证操作的原子性,因为缓存一致性机制会阻止同时修改被两个以上处理器缓存的内存区域数据,当其他处理器回写已被锁定的缓存行的数据时会起缓存行无效。...原创 2020-12-26 11:59:18 · 98 阅读 · 0 评论 -
Java并发-ConcurrentHashMap(1.7)
数据结构:由 Segment 数组、HashEntry 组成,和 HashMap 一样,仍然是数组加链表,和 HashMap 非常类似,唯一的区别就是其中的核心数据如 value ,以及链表都是 volatile 修饰的,保证了获取时的可见性。原理上来说:ConcurrentHashMap 采用了分段锁技术,其中 Segment 继承于 ReentrantLock。不会像 HashTable 那样不管是 put 还是 get 操作都需要做同步处理,理论上 ConcurrentHashMap 支持 C原创 2020-12-05 14:46:10 · 252 阅读 · 1 评论 -
java并发-cas
一、有无锁并发在谈论无锁概念时,总会关联起乐观派与悲观派,对于乐观派而言,他们认为事情总会往好的方向发展,总是认为坏的情况发生的概率特别小,可以无所顾忌地做事,但对于悲观派而已,他们总会认为发展事态如果不及时控制,以后就无法挽回了,即使无法挽回的局面几乎不可能发生。这两种派系映射到并发编程中就如同加锁与无锁的策略,即加锁是一种悲观策略在谈论无锁概念时,总会关联起乐观派与悲观派,对于乐观派而言,他们认为事情总会往好的方向发展,总是认为坏的情况发生的概率特别小,可以无所顾忌地做事,但对于悲观派而已,他们总会原创 2020-11-29 09:37:40 · 236 阅读 · 1 评论 -
synchornized相关
Monitor对象:所有的Java对象是天生的Monitor,每一个Java对象都有成为Monitor的可能。在Java虚拟机(HotSpot)中,monitor是由ObjectMonitor实现的,其主要数据结构如下(位于HotSpot虚拟机源码ObjectMonitor.hpp文件,C++实现的)对象头:可以使用jol(java 对象布局)辅助查看pom文件中添加依赖:<dependency><groupId>org.openjdk.jol</g原创 2020-08-30 19:54:01 · 144 阅读 · 0 评论 -
并发相关
并发及锁并发是同一时间应对(dealing with)多件事情的能力;并行是同一时间动手做(doing)多件事情的能力。从应用程序软件的角度来看,线程安全问题的产生是由于多线程应用中缺少线程同步机制(多线程并发)。线程同步机制是一套用于协调线程间的数据访问及活动的机制,该机制用于保证线程安全以及实现这些线程的共同目标。如果把线程比作在公路上行驶的车辆,则线程同步机制就好比是任何车辆都要遵循的交通规则。Java中提供的线程同步机制包括锁,volatile关键字,final关键字,static关键字以及一些原创 2020-08-23 18:41:34 · 212 阅读 · 0 评论