多线程编程入门(11):Callable和Future
来源:互联网 发布:淘宝靠谱ipad二手店铺 编辑:程序博客网 时间:2024/06/05 22:53
1 使用Demo
package cn.itcast.heima2;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutorCompletionService;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;public class CallableAndFuture { public static void main(String[] args) throws Exception {ExecutorService threadPool = Executors.newSingleThreadExecutor();Future<Integer> result = threadPool.submit(new Callable<Integer>() {@Overridepublic Integer call() throws Exception {Thread.sleep(2000);return 1 + 2;}});System.out.println("等待结果");//aynchronized programming System.out.println("拿到结果:"+result.get());//System.out.println("拿到结果:"+result.get(1, TimeUnit.SECONDS));//TimeOutExceptionCompletionService<Integer> completionService = new ExecutorCompletionService<Integer>(Executors.newFixedThreadPool(10));//提交一批任务for (int i = 0; i < 10; i++) {final int seq = i;completionService.submit(new Callable<Integer>() {@Overridepublic Integer call() throws Exception {Thread.sleep(new Random().nextInt(5000));return seq;}});}for (int i = 0; i < 10; i++) {Future<Integer> future = completionService.take();System.out.println("completionService拿到结果:" + future.get());}}}
2 参考链接
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Callable.html
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html
0 0
- 多线程编程入门(11):Callable和Future
- 多线程Callable和Future
- 多线程 :Callable和Future
- java多线程Callable和Future
- 关于多线程Callable和Future
- Java多线程--Callable和Future
- java多线程编程之Callable、Future和FutureTask。
- Java多线程编程:Callable、Future和FutureTask浅析
- Java多线程编程:Callable、Future和FutureTask浅析
- Java多线程编程:Callable、Future和FutureTask浅析
- 多线程编程(六)--Callable&Future
- 多线程编程(六)--Callable&Future
- Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
- Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
- Java多线程之 Callable、Future和FutureTask
- java多线程Future和Callable用法
- Java 多线程线程池 - Callable和Future
- java多线程 callable和future学习
- SPOJ 7258 SUBLEX - Lexicographical Substring Search【SAM,我要报警x
- sql笔记
- h264中profile和level的含义
- eclipse向mysql插入中文数据乱码
- mac os x配置adb命令的方法,苹果电脑设置adb命令的方法
- 多线程编程入门(11):Callable和Future
- iOS 图文混排,UITableView实现图文混排 —— HERO博客
- spark【例子】单词计算(wordcount) 词频排序(TopK)
- Python的前世今生
- 高速电路中的复位设计
- OpenlGL游戏编程-简单的机器人制作(一)
- 【LeetCode】 036. Valid Sudoku
- 拯救行动(变种bfs)
- App Widgets的使用