
线程安全问题
java中的线程安全问题-可见性、原子性、synchronized
阿莫西邻
这个作者很懒,什么都没留下…
展开
-
java锁相关
目录目标JAVA中锁的概念同步关键字synchronizedsynchronized底层原理堆内存中的java对象目标锁是访问资源的凭据,会消耗资源。wait会破会Synchronized的原子性,因为会释放锁。Synchronized从使用到原理。JAVA中锁的概念冲突:指数据的不一致性。自旋锁:CAS操作机制,循环尝试等待。乐观锁:不会有冲突,会进行比对判断,不一...原创 2019-12-26 22:27:37 · 85 阅读 · 0 评论 -
线程安全之原子操作
目录Atomic相关类和CSA机制原子操作存在原子操作的问题。核心在于资源在该操作中保持一致反编译后字节码指令读取- 赋值- 相加分析字节码执行顺序问题原因在t1线程put后,t2线程在t1线程put之前操作,操作了无效数据,导致出现数据一致性问题。和可见性问题的区别可见性:先写后读,无法读到。此原子问题:在写之前就以读取,所以和可见性问题没有...原创 2019-12-26 17:52:33 · 156 阅读 · 0 评论 -
java内存模型详解-可见性
目录JVM运行时数据区Java内存模型 vs JVM运行时数据区初看java内存模型多线程中的问题从内存结构到内存模型JIT编译器 volatile关键字Shared Variables(共享变量)定义对于同步的规则定义Happens-before先行发生原则final在JMM中的处理Word Traring字节处理double和long的特殊处理再看Java内存模型...原创 2019-12-26 17:02:16 · 235 阅读 · 0 评论