AtomicStampedReference源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 1.1k | Reading time ≈ 6 AtomicStampedReference源码解析AtomicStampedReference类介绍AtomicReference或者说CAS存在一个比较常见的问题,就是ABA问题。因此,JDK提供了AtomicStampedReference来解决CAS中的ABA问题。 类图 主要属性123pr ... Read more »
DoubleAccumulator源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 871 | Reading time ≈ 4 DoubleAccumulator源码解析DoubleAccumulator类介绍DoubleAccumulator也是JDK提供的基于Striped64实现的线程安全的double累加器。 类图 主要属性12private final DoubleBinaryOperator function;p ... Read more »
DoubleAdder源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 926 | Reading time ≈ 4 DoubleAdder源码解析DoubleAdder类介绍AtomicLong类通过CAS提供了非阻塞的原子性操作,相比使用synchronized来说,性能已经有了很大的提升。但是,在高并发的场景下,大量线程同时使用AtomicLong时,只能有一个线程能成功,其他线程只能通过自旋获取新的值,再后 ... Read more »
AtomicBoolean源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 18 | Reading time ≈ 1 AtomicBoolean源码解析AtomicBoolean类介绍类图主要属性主要方法 Read more »
LongAccumulator源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 799 | Reading time ≈ 4 LongAccumulator源码解析LongAccumulator类介绍LongAccumulator也是JDK提供的基于Striped64实现的线程安全的long累加器。 类图 主要属性12private final LongBinaryOperator function;private fin ... Read more »
AtomicBoolean源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 18 | Reading time ≈ 1 AtomicBoolean源码解析AtomicBoolean类介绍类图主要属性主要方法 Read more »
Striped64源码解析 Posted on 2020-07-17 | In 源码 , 多线程 , CAS Words count in article: 2.5k | Reading time ≈ 11 Striped64源码解析Striped64类介绍Striped64是Java8中新增用来支持累加器的并发组件。它可以在并发环境下做一个安全的计数器。它的设计思路,借鉴了JAVA7中的ConcurrentHashmap的分段思想,在竞争的时候,尽量分散竞争。从实现上来看,Striped64维护了一个 ... Read more »
MySQL查询优化 Posted on 2020-05-24 | In MySQL Words count in article: 2.7k | Reading time ≈ 9 MySQL查询优化优化数据访问查询性能低下最基本的原因是访问的数据太多。某些查询可能不可避免地需要筛选大量数据,但这并不常见。大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化,对于低效的查询,通过以下两个步骤来分析总是很有效: 确认应用程序是否在检索大量超过需要的数据,这通常意味着访问 ... Read more »
MySQL分区 Posted on 2020-05-23 | In MySQL Words count in article: 2.6k | Reading time ≈ 8 MySQL分区MySQL在创建表时使用PARTITION BY子句定义每个分区存放的数据。在执行查询的时候,优化器会根据分区定义过滤那些没有我们需要数据的分区,这样只需要查找包含需要数据的分区就可以了。 分区的一个主要目的就是将数据按照一个较粗的粒度分在不同的表中,这样做可以将相关的数据存放在一起。 ... Read more »
Linux的N种IO模型 Posted on 2020-05-10 | In linux Words count in article: 3.5k | Reading time ≈ 12 Linux的N种IO模型Linux下主要的IO模型可以分为以下五种: 阻塞式IO(Blocking IO) 非阻塞式IO(Non-Blocking IO) IO复用(Multiplexing IO) 信号驱动式IO(Signal-Driven IO) 异步IO(Asynchronous IO) ... Read more »