美文网首页
java多线程Callable,Future,FutureTas

java多线程Callable,Future,FutureTas

作者: 愤怒的_菜鸟 | 来源:发表于2017-05-10 17:01 被阅读43次

    我们平时接触到的多线程Thread,Runnable,这两种方式不能返回线程执行后的结果。
    假如有Thread1、Thread2、Thread3三个线程分别统计信息,
    所有线程统计完毕交给Thread4汇总,应当如何实现?
    Callable和Future,前者产生结果,后者拿到结果。
    Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子:

    public void init() throws ServletException {
            Callable<String> callable = new Callable<String>() {
    
                public String call() throws Exception {
                    start(); // 使用另一个线程来执行该方法,会避免占用Tomcat的启动时间
                    return "Collection Completed";
                }
    
            };
            FutureTask<String> task = new FutureTask<String>(
                    callable);
    
            new Thread(task).start();
        }
    
    原文地址:[http://blog.csdn.net/ghsau/article/details/7451464](转载)
    

    相关文章

      网友评论

          本文标题:java多线程Callable,Future,FutureTas

          本文链接:https://www.haomeiwen.com/subject/vnegtxtx.html