240 发简信
IP属地:上海
  • LongAccumulator介绍,使用,原理

    LongAccumulator类原理探究 LongAdder类时LongAccumulator的一个特例,LongAccumulator比Lon...

  • Resize,w 360,h 240
    LongAdder (下) 代码实现原理篇

    LongAdder代码分析 为了解决高并发下多线程对一个变量CAS争夺失败后进行自旋而造成的降低并发性能的问题,LongAdder在内部维护多个...

  • Resize,w 360,h 240
    LongAdder (上)实现原理篇

    LongAdder介绍 之前有篇文章讲过AtomicLong通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说它的性能已经很好了,...

  • ThreadLocal(下) 继承性问题解决

    ThreadLocal不支持继承性 首先看一个例子 输出结果如下: 通过以上例子可以看到,同一个ThreadLocal变量在父线程中设置值后,在...

  • Resize,w 360,h 240
    ThreadLocal(中)实现原理

    ThreadLocal实现原理 下面是ThreadLocal相关类的类结构图,如图: 由该图可知,Thread类中有一个threadLocals...

  • ThreadLocal(上)基本使用

    出现背景: 多线程访问同一个共享变量特别容易出现并发问题,特别是在多个线程需要对一个共享变量进行写入时,为了保证线程安全,一般使用者在访问共享变...

  • Resize,w 360,h 240
    线程的通知与等待

    Java中的Object类是所有类的父类,鉴于继承机制,Java把所有的类都需的方法放在了Object类里面,其中就包含要说的通知与等待。 1....

  • CountDownLatch使用

    CountDownLatch作用阻塞一个或多个线程等待其他线程完成操作。 定义初始化的时候,需要传入一个正数来初始化计数器(0也可以,但这样定义...

  • Resize,w 360,h 240
    [Java 并发]读写锁ReedWriteLock/StampedLock

    这篇看一下JUC包提供的读写锁(共享锁/独占锁)。 之前我们都知道在一个变量被读或者写数据的时候每次只有一个线程可以执行,那么今天我们来看一下读...