java
bruk_spp
长期从事嵌入式软件开发,对android上中下都很了解。
展开
-
从操作角度看ThreadPoolExecutor实现原理
先来看调用的流程图.需要指明的是Worker类是ThreadPoolExecutor的内部类.abstractExecutorService是线程池的父类.thread参数被在Worker中声明首先还是从ThreadPoolExecutor的构造函数说起.这个大家都比较熟悉了, 构造函数罗列如下,只罗列两个,一个是参数是最少的.另一个是全参数的:public ThreadPoolExecut...原创 2019-09-09 15:03:24 · 132 阅读 · 0 评论 -
AQS 同步队列 简单分析
源码AbstractQueuedSynchronizer.javaacquire 调用 独占锁:如果tryAcquire失败.那么会一直等待直到成功.是一种阻塞锁.因为acquire是一个阻塞锁.所以队列中有多个等待者,就有多少个线程.大体来说下过程1.首先某个线程发起acquire获取锁的请求.如果成功很简单资源加锁就完了.主要是失败的处理.2.如果请求锁失败,那么这时候会新生成一个...原创 2019-09-12 23:01:00 · 196 阅读 · 0 评论 -
AQS条件队列
先来描述下生活中发生的一件事.曾经有一次,我去中国农业银行办点事.取了个号等待,那是在中午只有一个窗口在办事.当时我前面只有三个等待者.半个小时过去了,前面终于只有一个了又半个小时过去了,前面还是只有一个.Why ? VIP插队了再等半小时,前面仍然还有一个等待者.全它妈是VIP插队差不多等了近两小时,前面仍然还有个等待者.气的我要骂农行它娘.这里再骂下垃圾中国农业银行.这里就描述了...原创 2019-09-13 13:22:19 · 1179 阅读 · 0 评论 -
CyclicBarrier 代码深入分析
线程屏障源码.java源码CyclicBarrier.javacyclicbarrier就最下面那么一点点.事实上cyclicbarrier操作很简单.只需要两步就能达到目地.1.new 一个对象,告诉构造函数最大的支持数量2.然后就是await提交事业了,就这两步使用简单,那么实现起来的话思路也应该很简单.其实现的主要代码在dowait里面.这代码一目了然,讲解的网上一大把.我在看...原创 2019-09-13 19:14:57 · 208 阅读 · 0 评论