我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用。
之前我一直习惯自己维护一个list保存submit的callable task所返回的Future对象。
在主线程中遍历这个list并调用Future的get()方法取到Task的返回值。
但是,我...
分类:
其他好文 时间:
2015-01-17 19:30:03
阅读次数:
204
并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— CompletionService : ...
分类:
其他好文 时间:
2015-01-15 15:38:34
阅读次数:
295
Executor框架是指java5中引入的一系列并发库中与executor相关的功能类,包括Executor、Executors、ExecutorService、CompletionService、Future、Callable等。(图片引用自http://www.javaclubcn.com/a/j...
分类:
编程语言 时间:
2014-12-01 21:00:22
阅读次数:
289
1.CompletionService源码分析
CompletionService内部实现还是维护了一个可阻塞的队列,通过代理设计模式,从而操作队列。
/**
* Creates an ExecutorCompletionService using the supplied
* executor for base task execution and a
...
分类:
编程语言 时间:
2014-10-26 15:38:51
阅读次数:
113
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
编程语言 时间:
2014-10-24 18:43:37
阅读次数:
217
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/27250059普通情况下,我们使用Runnable作为主要的任务表示形式,可是Runnable是一种有非常大局限的抽象,run方法中仅仅能记录日志,打印,或者把数据汇总入某个容器(一...
分类:
编程语言 时间:
2014-09-28 21:34:05
阅读次数:
211
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
其他好文 时间:
2014-09-26 13:45:58
阅读次数:
220
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
其他好文 时间:
2014-09-25 20:36:17
阅读次数:
143
1. 背景在Java5的多线程中,可以使用Callable接口来实现具有返回值的线程。使用线程池的submit方法提交Callable任务,利用submit方法返回的Future存根,调用此存根的get方法来获取整个线程池中所有任务的运行结果。方法一:如果是自己写代码,应该是自己维护一个Collec...
分类:
编程语言 时间:
2014-09-16 14:02:50
阅读次数:
449
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
其他好文 时间:
2014-09-16 10:34:00
阅读次数:
193