01 2022 档案
摘要:这一章主要分析可重入锁ReentrantLock的实现细节 首先展示ReentrantLock实现涉及到的类图 1.AQS简介 AQS即图中的AbstractQueuedSynchronizer类,该类是并发工具类的基础,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常
阅读全文
摘要:一.原子性操作 所谓原子性操作,是指执行一系列操作时,这些操作要么全部执行,要么全部不执行,不存在执行其中一部分的情况。 如果不能保证操作是原子的,那么在多线程情况下,就有可能会存在线程安全问题。 接下来用代码来验证非原子操作在多线程环境下的线程安全问题: public class ThreadSa
阅读全文
摘要:内存可见性问题 常见的CPU架构如图所示,当一个线程操作共享变量时,首先将该变量从主内存中读取到自己的工作内存(L1,L2 Cache),处理完之后,再将变量写回到主内存中。 现在假设有一个共享变量X,值为0,线程A首先获取变量X的值,由于L1,L2 Cache都没有命中,将从主内存中加载变量X到L
阅读全文
浙公网安备 33010602011771号