09 2014 档案

摘要:Java中启动一个线程很容易,通常情况下我们都是等到任务运行结束后让线程自行停止。但有时需要在任务正在运行时取消他们,使得线程快速结束。对此Java并没有提供任何机制。但是我们可以通过Java提供的线程中断机制来实现。首先来看Thread类三个和中断有关的方法:public class Thread... 阅读全文
posted @ 2014-09-28 13:53 梧留柒 阅读(6730) 评论(0) 推荐(1)
摘要:《java.util.concurrent 包源码阅读》系列文章已经全部写完了。开始的几篇文章是根据自己的读书笔记整理出来的(当时只阅读了部分的源代码),后面的大部分都是一边读源代码,一边写文章。由于水平有限,在阅读源代码的时候,分析得也比较浅显,还有很多地方自己也没有研究明白,有的地方显得语焉不详... 阅读全文
posted @ 2014-09-25 10:36 梧留柒 阅读(4698) 评论(7) 推荐(4)
摘要:这一部分来分析Phaser关于线程等待的实现。所谓线程等待Phaser的当前phase结束并转到下一个phase的过程。Phaser提供了三个方法:// 不可中断,没有超时的版本public int awaitAdvance(int phase);// 可以中断,没有超时的版本public int ... 阅读全文
posted @ 2014-09-23 16:13 梧留柒 阅读(1418) 评论(0) 推荐(0)
摘要:Phaser是JDK7新添加的线程同步辅助类,作用同CyclicBarrier,CountDownLatch类似,但是使用起来更加灵活:1. Parties是动态的。2. Phaser支持树状结构,即Phaser可以有一个父Phaser。Phaser的构造函数涉及到两个参数:父Phaser和初始的p... 阅读全文
posted @ 2014-09-22 16:24 梧留柒 阅读(2227) 评论(0) 推荐(2)
摘要:接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CANCELLED和EXCEPTIONAL // join... 阅读全文
posted @ 2014-09-19 14:53 梧留柒 阅读(1638) 评论(1) 推荐(0)
摘要:在写前面两篇文章23和24的时候自己有很多细节搞得不是很明白,这篇文章把Fork和Work-Stealing相关的源代码重新梳理一下。首先来看一些线程池定义的成员变量:关于scanGuard:volatile int scanGuard;private static final int SG_UNI... 阅读全文
posted @ 2014-09-17 17:00 梧留柒 阅读(2279) 评论(0) 推荐(0)
摘要:仔细看了Doug Lea的那篇文章:A Java Fork/Join Framework 中关于Work-Stealing的部分,下面列出该算法的要点(基本是原文的翻译):1. 每个Worker线程都维护一个任务队列,即ForkJoinWorkerThread中的任务队列。2. 任务队列是双向队列,... 阅读全文
posted @ 2014-09-04 21:36 梧留柒 阅读(2009) 评论(1) 推荐(1)
摘要:上篇文章一直追踪到了ForkJoinWorkerThread的pushTask方法,仍然没有办法解释Fork的原理,那么不妨来看看ForkJoinWorkerThread的run方法: public void run() { Throwable exception = null;... 阅读全文
posted @ 2014-09-03 17:37 梧留柒 阅读(1709) 评论(0) 推荐(0)
摘要:JDK7引入了Fork/Join框架,所谓Fork/Join框架,个人解释:Fork分解任务成独立的子任务,用多线程去执行这些子任务,Join合并子任务的结果。这样就能使用多线程的方式来执行一个任务。JDK7引入的Fork/Join有三个核心类:ForkJoinPool,执行任务的线程池ForkJo... 阅读全文
posted @ 2014-09-02 21:13 梧留柒 阅读(4185) 评论(0) 推荐(2)
摘要:CyclicBarrier是一个用于线程同步的辅助类,它允许一组线程等待彼此,直到所有线程都到达集合点,然后执行某个设定的任务。现实中有个很好的例子来形容:几个人约定了某个地方集中,然后一起出发去旅行。每个参与的人就是一个线程,CyclicBarrier就是那个集合点,所有人到了之后,就一起出发。C... 阅读全文
posted @ 2014-09-01 14:28 梧留柒 阅读(1393) 评论(0) 推荐(0)