张孝祥Callable&Future(学习笔记)
2014-03-29 22:57
330 查看
package cn.javaious.concurrence; import java.util.Random; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class CallableAndFuture { public static void main(String[] args) { // TODO Auto-generated method stub ExecutorService threadPool = Executors.newSingleThreadExecutor(); Future<String> future = threadPool.submit(new Callable<String>() { @Override public String call() throws Exception { // TODO Auto-generated method stub return "hello"; } }); System.out.println("waiting for output..."); try { System.out.println("get result "+future.get()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } ExecutorService threadPool2 = Executors.newFixedThreadPool(10); CompletionService<Integer> completionService = new ExecutorCompletionService<Integer>(threadPool); for(int i=1;i<10;i++) { final int seq = i; completionService.submit(new Callable<Integer>() { @Override public Integer call() throws Exception { // TODO Auto-generated method stub Thread.sleep(new Random().nextInt(5000)); return seq; } }); } for(int i=0;i<10;i++) { try { System.out.println(completionService.take().get()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
相关文章推荐
- 张孝祥javascript学习笔记1---HTML&CSS
- Future,FutureTask,Executors,ExecutorService,Callable学习笔记
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- 以Android环境为例的多线程学习笔记———-Callable与Future
- JAVA学习笔记(三)-并发编程 Callable Future CompleableFuture
- Java学习笔记之Callable和Future
- Future,Callable学习笔记
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- [JAVA学习笔记-64] Future与Callable的关联
- 多线程学习(五)之Callable&Future
- 【张孝祥并发课程笔记】09:Callable与Future的应用
- java多线程学习笔记:使用Callable和Future
- Callable与Future、FutureTask的学习 & ExecutorServer 与 CompletionService 学习 & Java异常处理-重要
- 黑马程序员_O‘Reilly java nio学习笔记之通道_管道&&Channels工具类
- 黑马程序员————张孝祥老师基础加强学习笔记
- Head First PHP&MySQL学习笔记(五)
- 高级并发编程学习-callable与Future的使用
- 数据结构&算法学习笔记: 归并排序
- Cocoa & Objective-c学习笔记1 (方法调用)
- Head First PHP &MySQL学习笔记