码迷,mamicode.com
首页 > 其他好文 > 详细

Callable+Future

时间:2019-05-15 11:16:02      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:i++   结果   except   完成   inter   任务   div   状态   计算   

      Future提供了三种功能:

  1)判断任务是否完成;

  2)能够中断任务;

  3)能够获取任务执行结果

package com.moreas;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class TestCallable {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newCachedThreadPool();
        Task task = new Task();
        Future<Integer> result = executor.submit(task);
        //这里只是将空闲的线程中断,将线程池的状态改为shutdown,不能继续往线程池中添加任务
        executor.shutdown();

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }

        System.out.println("主线程在执行任务");

        try {
            System.out.println("task运行结果" + result.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

        System.out.println("所有任务执行完毕");
    }

}

class Task implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        System.out.println("子线程在进行计算");
        Thread.sleep(3000);
        int sum = 0;
        for (int i = 0; i <= 100; i++)
            sum += i;
        return sum;
    }
}

 

Callable+Future

标签:i++   结果   except   完成   inter   任务   div   状态   计算   

原文地址:https://www.cnblogs.com/moris5013/p/10868115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!