-
Spring Boot Callable 异步接口服务端超时后是否会继续执行业务逻辑
Controller 代码 使用了Callable作为返回值,Spring Boot会当作异步接口来处理。 @GetMapping("/timeout") pu
2023-07-18, Views: 740 , Topics: Spring Boot juc
-
Java 并发编程之线程池大小
说明 关于线程池大小的设置,有很多文章和经验公式,给出的答案不尽相同。 Java并发编程实战 《Java并发编程实战》:第8章 - 线程池的使用。第141页。
-
Java 并发编程之 ThreadPoolExecutor 线程池源码解析
构造函数 注意:只有在阻塞队列满的前提下才会创建非核心线程。 ThreadPoolExecutor executor = new ThreadPoolExecu
-
Java 并发编程之自定义线程池
代码 核心线程 阻塞队列 拒绝策略 未实现线程maxSize功能 public class CustomThreadPool { public s
-
Java 并发编程之 ConcurrentLinkedQueue 非阻塞队列
介绍 ConcurrentLinkedQueue没有LinkedBlockingQueue类似的put和take等阻塞方法,所以是一个非阻塞的队列。 但和Lin
-
Java 并发编程之 LinkedBlockingQueue 阻塞队列
介绍 LinkedBlockingQueue的put和take为阻塞方法。 put:队列满时等待放入。 take:队列空时等待获取。 初始化 初始化链表。头节点
-
Java 并发编程之 ConcurrentSkipListSet
介绍 线程安全的排序集合。 原理 ConcurrentSkipListSet底层是使用ConcurrentSkipListMap实现。 public Concu
-
Java 并发编程之 ConcurrentSkipListMap
介绍 线程安全的排序集合。 跳跃列表 Head nodes Index nodes +-+ right +-+
-
Java 并发编程之 CopyOnWriteArraySet
介绍 线程安全的,适合并发的集合类,对比HashSet。 原理 底层实际就是CopyOnWriteArrayList。 具体可参考前一篇文章:Java 并发编程
-
Java 并发编程之 CopyOnWriteArrayList
介绍 线程安全的,适合并发的集合类,对比ArrayList。 读写分离 写操作是复制一份新的数组,读操作在原数组的快照中进行。 数据一致性 遍历时获取的是原数组
-
Java 并发编程之 ConcurrentHashMap 1.8 源码分析
Forwarding node 扩容时如果某个索引位置的节点迁移完毕,用ForwardingNode作为旧table的头节点。 get spread方法保证获取
-
Java 并发编程之 ConcurrentHashMap 1.7 源码分析
Segment JDK1.7中基于Segment数组实现。Segment类继承自ReentrantLock,增加了HashEntry数组。 Segment数组一
-
Java 并发编程之 AQS CyclicBarrier 源码解析
说明 CyclicBarrier与CountDownLatch的差别在于:CyclicBarrier可重复使用,而CountDownLatch在计数归0后就不能
-
Java 并发编程之 AQS CountDownLatch 源码解析
init // java.util.concurrent.CountDownLatch#CountDownLatch public CountDownLatch
-
Java 并发编程之 AQS Semaphore 源码解析
init // java.util.concurrent.Semaphore.Sync#Sync abstract static class Sync exte
-
Java 并发编程之 AQS ReentrantReadWriteLock 读写锁源码解析
Read Lock public ReentrantReadWriteLock.ReadLock readLock() { return readerLoc
-
Java 并发编程之 AQS ReentrantLock await signal 源码解析
说明 将ConditionObject中维护的队列称为条件队列。 将AQS中维护的Node队列称为同步队列。 await // java.util.concur
-
Java 并发编程之 AQS ReentrantLock 可中断锁源码解析
部分源码 java.util.concurrent.locks.ReentrantLock#lockInterruptibly public void lock
-
Java 并发编程之 AQS ReentrantLock 公平锁源码解析
部分源码 java.util.concurrent.locks.ReentrantLock.FairSync static final class FairSy
-
Java 并发编程之 AQS ReentrantLock 非公平锁源码解析
说明 本文基于Java11。 部分源码 // java.util.concurrent.locks.AbstractQueuedSynchronizer pub