明天你会感谢今天奋力拼搏的你。ヾ(o◕∀◕)ノヾ
一、基本概念 在 Java 中,并发容器是为了在多线程环境下高效、安全地处理数据而设计的容器类,主要位于java.util.concurrent包中。它们通过更高效的并发控制机制(如CAS、分段锁、写
Reactor 线程模型是一种事件驱动的并发编程模型,通过事件驱动+NIO多路复用,尤其适合网络服务器开发。其核心思想是将事件分发与业务处理解耦,通过有限的线程处理大量并发连接。 Reactor 模式
一、阻塞与非阻塞、同步与异步 阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。 阻塞式:当我们没有获取到数据的时候,整个应用可能产生阻塞,放弃CPU执行,无法去做其他事情。应
一、类图结构 从下图可以看出,ReentrantReadWriterLock内部维护了一个读锁和写锁,并提供了公平锁和非公平锁的实现。 二、构造函数源码解读 如下图所示,可以看出默认读锁和写锁都是非公
一、读写锁ReentrantReadWriteLock的原理 解决线程安全问题使用ReentrantLock就可以了,但是ReentrantLock是独占锁,某一时刻只有一个线程可以获取该锁,而实际中
一、用AQS手写信号量 package demo.aqs; import java.util.concurrent.locks.AbstractQueuedSynchronizer; /** *
首先对锁的各种类型做个介绍: 独占锁:同一时间,一把锁只能被一个线程获取; 共享锁:同一时间,一把锁可以被多个线程获取。 公平锁:按照申请锁的时间先后,进行锁的再分配工作,这种锁往往性能稍差,因为要保
在此先抛出结果:Java中i++不是原子操作,存在竞态条件,线程不安全。 这是为何? 在回答这个问题之前,先了解一个指令:javap -v -p Counter.class javap是JDK自带的反
一、原子性 原子操作:原则操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。 将整个操作视作一个整体,资源在该次操作中保持一致,这是原
一、线程池 线程不仅是Java中的一个对象,每个线程都有自己的工作内存。 线程创建、销毁需要时间,消耗性能。 线程过多,会占用很多内存。 操作系统频繁切换线程上下文会影响性能。 创建时间+销毁事件&g