900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【重点:线程池续】超人气组合:Callable和Future

【重点:线程池续】超人气组合:Callable和Future

时间:2024-03-12 11:40:18

相关推荐

【重点:线程池续】超人气组合:Callable和Future

Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,

并获取计算的结果。 计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可

以阻塞此方法。

package jingtianxiaozhi;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/** 线程池续* Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。* 计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法*/public class TestCallableFuture {public static void main(String[] args) {ExecutorService threadPool=Executors.newSingleThreadExecutor();Future<String>future = threadPool.submit(new Callable<String>() {@Overridepublic String call() throws Exception {return "Callable Future";}});try {System.out.println("hello "+future.get());} catch(Exception e) {}threadPool.shutdown();}}

CompletionService(农场收菜)

CompletionService就是 ExecutorService的子类的一个装饰设计类。

将生产新的异步任务与使用已完成任务的结果分离开来的服务。

生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处

理它们的结果。

package jingtianxiaozhi;import java.util.Random;import java.util.concurrent.Callable;import java.pletionService;import java.util.concurrent.ExecutorCompletionService;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** CompletionService就是* ExecutorService的子类的一个装饰设计类。* 将生产新的异步任务与使用已完成任务的结果分离开来的服务。* 生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果。*/public class TestCompletionService {public static void main(String[] args) {ExecutorService threadPool=Executors.newFixedThreadPool(3);CompletionService<Integer>completionService=new ExecutorCompletionService<Integer>(threadPool);for(int i=0;i<10;i++){final int task=i;completionService.submit(new Callable<Integer>() {@Overridepublic Integer call() throws Exception {Thread.sleep(new Random().nextInt(10000));return task;}});}for(int i=0;i<10;i++){try {System.out.println(completionService.take().get());} catch (Exception e) {}}threadPool.shutdown();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。