使用Callable+Future获取执行结果java

之前给大家带来了一个java callable用法示例,那么下面要给大家接着分享一个使用Callable+Future获取执行结果的java示例,一起来看看吧。

使用Callable+Future获取执行结果

public class Test
{
    public static void main(String[] args)
    {
        ExecutorService executor = Executors.newCachedThreadPool();
        Task task = new Task();
        Future < Integer > result = executor.submit(task);
        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;
    }
}

执行结果

子线程在进行计算

主线程在执行任务

task运行结果4950

所有任务执行完毕

你还想了解更多的java实例吗?欢迎大家继续的来奇Q工具网来进行进一步的了解哦,更多java实例可以分享给你。以上内容仅供参考。

推荐阅读:

二叉树转化为森林例子要怎么实现?步骤有哪些?

java将一个数组逆序输出,java数组逆序的方法

java简单编程题问第五个人多少岁?java递归算法经典实例