yuyee

          callable

          public interface Callable<V>

          返回結果并且可能拋出異常的任務。實現者定義了一個不帶任何參數的叫做 call 的方法。 此方法返回計算結果,并拋出經過檢查的異常

          與Runnable相似,但是Runnable不返回計算結果,且不拋異常


          void run()
                    使用實現接口 Runnable 的對象創建一個線程時,啟動該線程將導致在獨立執行的線程中調用對象的 run 方法。


           V call()
                    計算結果,如果無法計算結果,則拋出一個異常。



          通過callable 和Runnable構建FutureTask任務,調用run()方法獲得計算結果,并輸出

          package com.google.minatest.concurrent; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; import com.google.minatest.entity.Message; public class FutureTaskStudy { FutureTask<Message> future = null; public static void main(String[] args) { try { new FutureTaskStudy().test(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } public void test() throws InterruptedException, ExecutionException { future = new FutureTask<Message>(new CallableImpl()); future.run(); System.out.println(future.get()); future = new FutureTask<Message>(new RunnableImpl(), null); future.run(); System.out.println(future.get()); } private class CallableImpl implements Callable<Message> { public Message call() throws Exception { return new Message(); } } private class RunnableImpl implements Runnable { public void run() { new Message(); } } }


          posted on 2010-11-01 15:53 羔羊 閱讀(309) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 通海县| 枣庄市| 西华县| 高雄市| 双鸭山市| 张北县| 赣州市| 云安县| 武乡县| 原阳县| 甘肃省| 达拉特旗| 奉新县| 永安市| 三河市| 望都县| 静海县| 旬阳县| 北流市| 桂东县| 章丘市| 墨江| 仪陇县| 上高县| 阿拉尔市| 丽江市| 嘉善县| 蒙城县| 平遥县| 象州县| 家居| 青田县| 德保县| 云林县| 大冶市| 正定县| 巴彦淖尔市| 北辰区| 福鼎市| 新昌县| 无棣县|