明天你会感谢今天奋力拼搏的你。ヾ(o◕∀◕)ノヾ
一、读写锁ReentrantReadWriteLock的原理 解决线程安全问题使用ReentrantLock就可以了,但是ReentrantLock是独占锁,某一时刻只有一个线程可以获取该锁,而实际中
源码分析 提示:根据Lock接口的源码注释,Lock接口的实现,具备和同步关键字同样的内存语义。 用AQS手写信号量 用AQS手写CyclicBarrier 用AQS手写CountDownLatch
首先对锁的各种类型做个介绍: 独占锁:同一时间,一把锁只能被一个线程获取; 共享锁:同一时间,一把锁可以被多个线程获取。 公平锁:按照申请锁的时间先后,进行锁的再分配工作,这种锁往往性能稍差,因为要保
在此先抛出结果:Java中i++不是原子操作,存在竞态条件,线程不安全。 这是为何? 在回答这个问题之前,先了解一个指令:javap -v -p Counter.class javap是JDK自带的反
一、原子性 原子操作:原则操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。 将整个操作视作一个整体,资源在该次操作中保持一致,这是原
一、线程池 线程不仅是Java中的一个对象,每个线程都有自己的工作内存。 线程创建、销毁需要时间,消耗性能。 线程过多,会占用很多内存。 操作系统频繁切换线程上下文会影响性能。 创建时间+销毁事件&g
一、线程和线程组 1.1、线程状态 Java中6个状态定义:java.lang.Thread.State New:尚未启动的线程的线程状态。 Runnable:可运行线程的线程状态,等待CPU调度。
初学者可以先不去关注CPU、内存、JVM部分。可以先看多线程系列的其他文章,知其然,然后再去知其所以然。 一、CPU缓存和内存相关概念介绍(了解) 1.1、多级缓存 因为电脑硬件中遇到的并发问题和JV