2018年8月9日

java内存模型:Happens-Before

摘要: 有序性:Java内存模型中的程序天然有序性可以总结为一句话:如果在本线程内观察,所有操作都是有序的;如果在一个线程中观察另一个线程,所有操作都是无序的。前半句是指“线程内表现为串行语义”,后半句是指“指令重排序”现象和“工作内存中主内存同步延迟”现象。 volatile和synchronized两个 阅读全文

posted @ 2018-08-09 22:35 乐之者v 阅读(232) 评论(0) 推荐(0) 编辑

java内存模型:简单理解

摘要: 1.Java内存模型(Java Memory Model,JMM) 2.JMM定义了线程和主内存之间的抽象关系: 线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory)。 本地内存中存储了该线程以读/写共享变量的副本,本地内存是JMM的 阅读全文

posted @ 2018-08-09 22:33 乐之者v 阅读(312) 评论(0) 推荐(0) 编辑

java并发:CAS算法和ABA问题

摘要: CAS算法是硬件对于并发的支持,针对多处理器操作而设计的处理器中的一种特殊指令。 CAS用于管理对共享数据的并发访问。 java的并发包中,AQS、原子操作类等都是基于CAS实现的。 CAS 是一种 无锁的 非阻塞算法的 实现。 CAS(Compare-And-Swap),简单来说就是比较和替换。 阅读全文

posted @ 2018-08-09 17:15 乐之者v 阅读(882) 评论(0) 推荐(0) 编辑

java并发:AtomicInteger 以及CAS无锁算法【转载】

摘要: 1 AtomicInteger解析 众所周知,在多线程并发的情况下,对于成员变量,可能是线程不安全的; 一个很简单的例子,假设我存在两个线程,让一个整数自增1000次,那么最终的值应该是1000;但是多线程情况下并不能保证原子性;最终的结果极有可能不是1000;看如下的代码: package aut 阅读全文

posted @ 2018-08-09 15:35 乐之者v 阅读(620) 评论(0) 推荐(0) 编辑

导航