All are from Java Concurrent Package
收藏

分享读Java Concurrent部分源码的心得

分享到: Sina Tec

最近更新文章

ThreadPoolExecutor 工作线程调度和回收

        ThreadPoolExecutor对任务的提交和异步执行已分析完毕,现在要补充一些关于它对线程池的管理,也就是对其工作线程的调度和回收.        还记得上一篇“ThreadPoolExecutor execute 方法分析”最后一个关于任务异步执行的流程图,虽然分支庞杂,但只有两个条逻辑路径会增加工作线程加入到线程池:一是当前线程池的大小<核心线程池大小(即p ...
songzi0206 评论(0) 有13630人浏览 2011-11-17 18:19

ThreadPoolExecutor execute 方法分析

      分析完AbstractExecutorService异步任务提交之后,一直留着一个问题:就是任务提交之后的最终执行方法execute(Runnable)始终没有细究,只知道它会在将来某个时刻去执行任务,也就是所谓的异步执行。 现在可以揭开异步执行方法executor(Runnable command)的真面目了,回到线程池执行器ThreadPoolExecutor,乍看这个方法,蛮精干的 ...
songzi0206 评论(2) 有5350人浏览 2011-11-05 00:35

AbstractExecutorService任务提交<三>

    最后来看两个invokeAny方法,这个方法和invokeAll的区别在于,invokeAll会阻塞直到所有任务执行完(完成 or 取消 or异常)才会返回(返回的是所有任务的结 ...
songzi0206 评论(0) 有1984人浏览 2011-11-02 21:39

AbstractExecutorService任务提交<二>

        submit方法分析完毕,接着看两个invokeAll方法,先看第一个: public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException { ...
songzi0206 评论(0) 有2247人浏览 2011-11-02 20:54

AbstractExecutorService任务提交<一>

      现在可以来记录AbstractExecutorService的异步任务提交了,单刀直入吧,先看三个submit方法提交单个任务:   public Future<?> submit(Runnable task) { if (task == null) throw new NullPointerException(); RunnableF ...
songzi0206 评论(1) 有2725人浏览 2011-11-02 18:08

ThreadPoolExecutor 分析之类基础架构

         既然最终任务都是由execute(Runnable)方法执行,就直接来看该方法实现的所在类。 首当其冲肯定是类ThreadPoolExecutor了,相信他是java concurrent包中用的最多的一个 线程池执行器,包括spring中ThreadPoolTaskExecutor也是利用它来执行任务的。从类的 “家谱”来看,ThreadPoolExecutor直接继承自A ...
songzi0206 评论(0) 有5118人浏览 2011-10-25 11:25

First glimpse at Java Concurrent from Executors to FutureTask

      最近刚刚写完一个多线程的模块,感叹java concurrent强大的同时,整理了下近一周学习,打算大概记录下, 主要是读了部分concurrent包的代码. 有 ...
songzi0206 评论(0) 有2248人浏览 2011-10-21 18:11
  • 专栏创建者:songzi0206
  • 创建时间:2012-06-12 22:42:19
  • 专栏文章数:7篇
  • 专栏被浏览:33302 次

本专栏热门文章

最新评论

三年了,距今三年了,三年前已经有人熟读源码,膜拜,邀想2012年刚毕业
秦时明月黑 评论了 ThreadPoolExecutor execute 方法分析
太专业了! 非常感谢!
fengzhonghun102 评论了 ThreadPoolExecutor execute 方法分析
...
dj4307665 评论了 AbstractExecutorService任务提交<一>
Global site tag (gtag.js) - Google Analytics