熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java線程:新特征-有返回值的線程

2013-11-23 19:20:47  來源: Java核心技術 

    在Java之前線程是沒有返回值的常常為了返回值破費周折而且代碼很不好寫或者干脆繞過這道坎走別的路了
 
    現在Java終於有可返回值的任務(也可以叫做線程)了
 
    可返回值的任務必須實現Callable接口類似的無返回值的任務必須Runnable接口
 
    執行Callable任務後可以獲取一個Future的對象在該對象上調用get就可以獲取到Callable任務返回的Object了
 
    下面是個很簡單的例子
 



import ncurrent*;

/**
* Java線程有返回值的線程
*
* @author Administrator ::
*/
public class Test {
        public static void main(String[] args) throws ExecutionException InterruptedException {
                //創建一個線程池
                ExecutorService pool = ExecutorsnewFixedThreadPool();
                //創建兩個有返回值的任務
                Callable c = new MyCallable(A);
                Callable c = new MyCallable(B);
                //執行任務並獲取Future對象
                Future f = poolsubmit(c);
                Future f = poolsubmit(c);
                //從Future對象上獲取任務的返回值並輸出到控制台
                Systemoutprintln(>>>+fget()toString());
                Systemoutprintln(>>>+fget()toString());
                //關閉線程池
                poolshutdown();
        }
}

class MyCallable implements Callable{
        private String oid;

        MyCallable(String oid) {
                thisoid = oid;
        }

        @Override
        public Object call() throws Exception {
                return oid+任務返回的內容;
        }
}
 


>>>A任務返回的內容
>>>B任務返回的內容

Process finished with exit code
 
    非常的簡單要深入了解還需要看Callable和Future接口的API啊

  本文出自 熔 巖 博客請務必保留此出處


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26687.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.