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