摘要:
一、死锁 线程死锁 死锁是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待现象。 假设线程 A 持有资源 1,线程 B 持有资源 2,它们同时都想申请对方的资源,那么这两个线程就会互相等待而进入死锁状态。 使用 Java 代码模拟上述死锁场景: public class Reso 阅读全文
posted @ 2024-01-07 22:23
行行行行星
阅读(15)
评论(0)
推荐(0)
摘要:
线程池 Executor 框架 Executor 框架是在 Java5 中引入的,通过该框架来控制线程的启动,执行,关闭,简化并发编程。 Executor 基于生产者-消费者模式,提交任务的线程相当于生产者,执行任务的线程相当于消费者。同时,Executor 的实现还提供了对任务执行的生命周期管理的 阅读全文
posted @ 2024-01-07 22:19
行行行行星
阅读(19)
评论(0)
推荐(0)
摘要:
并发容器 CopyOnWriteArrayList 1. 读写分离 写操作在一个复制的数组上进行,读操作还是在原数组中进行,读写分离,互不影响。 写操作需要加锁,防止并发写入时导致写入数据丢失。 写操作结束之后需要把原数组指向新的复制数组。 //写操作: //通过过创建底层数组的新副本来实现的。 / 阅读全文
posted @ 2024-01-07 22:11
行行行行星
阅读(9)
评论(0)
推荐(0)
摘要:
原子操作类 AtomicInteger 源码解析 java.util.concurrent.atomic下的所有原子操作类都实现了 CAS。 AtomicInteger 内部维护一个变量 Unsafe: private static final Unsafe unsafe = Unsafe.getU 阅读全文
posted @ 2024-01-07 22:09
行行行行星
阅读(14)
评论(0)
推荐(0)
摘要:
Lock 体系 AQS AQS(AbtsractQueueSynchronized) 即同步队列器。 AQS 是一个抽象类,本身并没有实现任何同步接口的,只是通过提供同步状态的获取和释放来供自定义的同步组件使用。 AQS 的实现依赖内部的双向队列(底层是双向链表),称为同步队列。 如果当前线程获取同 阅读全文
posted @ 2024-01-07 21:49
行行行行星
阅读(15)
评论(0)
推荐(0)
摘要:
并发关键字 关键字一:volatile 可以这样说,volatile 关键字是 Java 虚拟机提供的轻量级的同步机制。 功能 volatile 有 2 个主要功能: 可见性。一个线程对共享变量的修改,其他线程能够立即得知这个修改。普通变量不能做到这一点,普通变量的值在线程间传递需要通过主内存来完成 阅读全文
posted @ 2024-01-07 21:46
行行行行星
阅读(17)
评论(0)
推荐(0)

浙公网安备 33010602011771号