zoukankan      html  css  js  c++  java
  • 13.FutureTask异步计算

    FutureTask

        1.可取消的异步计算,FutureTask实现了Future的基本方法,提供了start、cancel 操作,可以查询计算是否完成,并且可以获取计算
        的结果。结果只可以计算完成之后去获取,get方法会阻塞当前计算没有完成的线程,一定计算完成则会立即释放。

    线程池submit与execute

        1.submit()可以传入参数为实现callable接口的实例,返回future实例对象。
        2.execute()返回void。
    1. package demo2;
    2. import java.util.concurrent.*;
    3. /**
    4. * Created by liudan on 2017/7/31.
    5. */
    6. public class DemoFuture implements Callable<String> {
    7. public String name;
    8. public DemoFuture(String name) {
    9. this.name = name;
    10. }
    11. @Override
    12. public String call() throws Exception {
    13. Thread.sleep(3000);
    14. String r = this.name+" 任务处理 success";
    15. return r;
    16. }
    17. public static void main(String[] args) throws ExecutionException, InterruptedException {
    18. FutureTask<String> futureTask1 = new FutureTask<String>(new DemoFuture("订单1"));
    19. FutureTask<String> futureTask2 = new FutureTask<String>(new DemoFuture("订单2"));
    20. ExecutorService executorService = Executors.newFixedThreadPool(2);
    21. Future future1 = executorService.submit(futureTask1);
    22. Future future2 = executorService.submit(futureTask2);
    23. System.out.println("请求完毕...");
    24. try {
    25. System.out.println("处理中...");
    26. Thread.sleep(2000);
    27. } catch (InterruptedException e) {
    28. e.printStackTrace();
    29. }
    30. System.err.println("over:"+futureTask1.get().toString());
    31. System.err.println("over:"+futureTask2.get().toString());
    32. //futureTask1.get()方法,假如get不到,则一直等待阻塞自己的线程。
    33. executorService.shutdown();
    34. }
    35. }
    36. 输出:
    37. 请求完毕... 处理中... over:订单1 任务处理 success over:订单2 任务处理 success



  • 相关阅读:
    WinForm的Chart控件画条形图
    WinForm的Chart控件画折线图
    自定义控件
    左侧收缩菜单
    数组
    C#生成随机数的三种方法
    WinForm之GDI手动双缓冲技术
    WinForm之GDI画图步骤
    WinForm GDI编程:Graphics画布类
    翻译:《实用的Python编程》08_02_Logging
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/7302395.html
Copyright © 2011-2022 走看看