并发编程
掌握并发,研究源码
纯爱战神等待沈幼楚
去学习的目的很简单,享受恍然大悟的快感。去不断的认知,从了解变为熟悉,再有新的感悟,都是一种快乐。如果身边没有光,那我就是光。
展开
-
ArrayBlockingQueue主要源码分析
在ArrayBlockingQueue中,主要用到了ReentrantLock加锁来保证对数组对象操作的原子性。(AQS使用到了自旋、CAS、LockSupport、队列(CLH队列、条件等待队列))。原创 2022-07-04 14:11:19 · 121 阅读 · 1 评论 -
BlockingQueue
最近在公司新的项目中用到了ArrayBlockingQueue,不明白这个的作用和应用场景,然后上网查了一样下。这里专门来记录一下,以免以后忘记。 - BlockingQueue 英文翻译过来是阻塞队列,因为是阻塞队列,所以阻塞分为两种情况。 当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。 当队列中没有数据的情况下,消费者端的所有线程...转载 2018-11-12 20:49:59 · 136 阅读 · 0 评论 -
Executors使用
最近学习了BlockingQueue,在学习过程中看到了Executors的使用,以前没有专门的去了解和查看源码,现在去学习一下 Java通过Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务...转载 2018-11-14 09:18:50 · 1283 阅读 · 1 评论