-
Java 并发编程之 AQS Semaphore 源码解析
init // java.util.concurrent.Semaphore.Sync#Sync abstract static class Sync exte
-
Java 并发编程之 AQS ReentrantReadWriteLock 读写锁源码解析
Read Lock public ReentrantReadWriteLock.ReadLock readLock() { return readerLoc
-
Java 并发编程之 AQS ReentrantLock await signal 源码解析
说明 将ConditionObject中维护的队列称为条件队列。 将AQS中维护的Node队列称为同步队列。 await // java.util.concur
-
Java 并发编程之 AQS ReentrantLock 可中断锁源码解析
部分源码 java.util.concurrent.locks.ReentrantLock#lockInterruptibly public void lock
-
Java 并发编程之 AQS ReentrantLock 公平锁源码解析
部分源码 java.util.concurrent.locks.ReentrantLock.FairSync static final class FairSy
-
Java 并发编程之 AQS ReentrantLock 非公平锁源码解析
说明 本文基于Java11。 部分源码 // java.util.concurrent.locks.AbstractQueuedSynchronizer pub
-
Java 并发编程之 happens-before 7 条规则
定义 规定了对共享变量的写操作对其他线程的读操作可见。 它是可见性与有序性的一套规则总结。 synchronized 假设t1先执行:t1线程解锁m前对x变量的
-
Java @Contended 避免缓存行伪共享
相关名词 CPU缓存、缓存行、伪共享。 CPU 缓存 缓存行 Cache Line CPU读取内存数据时并非一次只读一个字节,而是会读一段字节长度(不同CPU
-
Java 并发编程之 LongAdder 源码解析
基本用法 public class LongAdderDemo { public static void main(String[] args) {
-
Java 并发编程之 AtomicIntegerFieldUpdater AtomicLongFieldUpdater AtomicReferenceFieldUpdater
说明 并发原子修改器,保证在多线程环境下对象中的字段的原子性。 示例 对象类 public class FieldUpdaterTest { vola
-
Java 并发编程之 AtomicIntergerArray AtomicLongArray AtomicReferenceArray
说明 原子并发数组,保证在多线程下对每个索引位置上的元素的原子性。 AtomicIntergerArray Integer类型数组。 public class
-
Java 并发编程之 AtomicMarkableReference
说明 AtomicStampedReference解决了ABA问题,但需要每次修改版本号比较繁琐,AtomicMarkableReference只关心是否有改动
-
Java 并发编程之 AtomicStampedReference
说明 AtomicReference不能保证ABA问题,故引入了版本标记AtomicStampedReference。 代码 public class Atom
-
Java 并发编程之 AtomicReference
说明 AtomicReference是原子的引用类型保证了并发情况下对引用的修改的线程安全。 代码 public class AtomicReferenceDe
-
Java 并发编程之 AtomicBoolean
代码 public class AtomicBooleanDemo { public static void main(String[] args)
-
Java 并发编程之 AtomicInteger AtomicLong
说明 AtomicInteger和AtomicLong原子类,保证了并发时线程安全的累加操作。底层是使用CAS原理。 AtomicInteger 原子整型类 A
-
Java WebSocket The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
版本 使用了javax.websocket的api。 错误信息 java.lang.IllegalStateException: The remote endp
-
Java synchronized 保证可见性
原因 synchronized在代码块执行结束后会将执行结果刷新到主存中。 所以synchronized也和volatile有可见性的作用。 JMM 规范 sy
-
Java 使用 wait 等待会使 synchronized 升级为重量级锁
原因 因为wait方法会让锁对象从owner拥有者变为waitSet队列中等待。 所以必须关联一个Monitor对象,这样synchronized就升级为了重量
-
Java volatile 内存屏障保证可见性和有序性
相关名词 内存屏障:Memory Barrier 写屏障:store fence 读屏障:load fence 保证可见性 写屏障 保证在该屏障之前的代码,对共