![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
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 · 181 阅读 · 1 评论 -
线程池总结加实战
使用线程池的好处 降低资源消耗。 提高响应速度。 提高线程的可管理性。 线程池的实现原理 当用户提交了一个任务到线程池,线程池执行流程如下: 线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下一个流程。 线程池判断工作队列是否已满。如果没满,则将新提交的任务存储在这个工作队列中。如果满了则进入下一个流程。 线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果满了,则交给饱和策略.原创 2020-08-21 11:14:06 · 268 阅读 · 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 · 184 阅读 · 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 · 165 阅读 · 0 评论