
Java 并发
Java
Quince Q
曾经的文学爱好者,现在的 Java 学习者。
展开
-
AQS 详解之独占锁
本文以ReentrantLock的非公平锁图解 AQS 独占锁加解锁过程。前置知识了解static final class Node { /** 标记为共享节点 */ static final Node SHARED = new Node(); /** 标记为独占节点 */ static final Node EXCLUSIVE = null; /** 等待状态值,表示被取消 */ static final int CANCELLED = 1;原创 2020-10-29 16:34:19 · 240 阅读 · 1 评论 -
线程池总结加实战
使用线程池的好处降低资源消耗。提高响应速度。提高线程的可管理性。线程池的实现原理当用户提交了一个任务到线程池,线程池执行流程如下:线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下一个流程。线程池判断工作队列是否已满。如果没满,则将新提交的任务存储在这个工作队列中。如果满了则进入下一个流程。线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果满了,则交给饱和策略.原创 2020-08-21 11:14:06 · 318 阅读 · 0 评论 -
这下该懂 ArrayBlockingQueue 了吧
阻塞队列基础知识详见 juc 阻塞队列被问怕了,熬夜总结。源码详解成员变量和构造函数/** 队列中存放数据的数组 */final Object[] items;/** 下一次 take, poll, peek 或者 remove 的位置 */int takeIndex;/** 下一次 put, offer, 或者 add 的位置 */int putIndex;/** 队列中元素的数量 */int count;/** 全局锁 */final ReentrantLock lock;/原创 2020-05-15 11:29:41 · 229 阅读 · 0 评论 -
juc 阻塞队列被问怕了,熬夜总结
juc 指的是 jdk 下的 java.util.concurrent包,在这个包下提供了很多并发相关的工具类。本文将解析这个包下面的一些阻塞队列。阻塞队列其实是实现了java.util.concurrent.BlockingQueue接口的一些实现类,要搞明白阻塞队列,那么就要清楚这个接口到底是做什么的。public interface BlockingQueue<E> extends Queue<E> { boolean add(E e); boolean o原创 2020-05-15 11:30:05 · 213 阅读 · 0 评论