lqxue

          常用鏈接

          統(tǒng)計

          book

          tools

          最新評論

          java 1.5 捕獲線程異常

          Executor 提供了管理終止的方法,以及可為跟蹤一個或多個異步任務(wù)執(zhí)行狀況而生成 Future 的方法。

          可以關(guān)閉 ExecutorService,這將導(dǎo)致其停止接受新任務(wù)。關(guān)閉后,執(zhí)行程序?qū)⒆詈蠼K止,這時沒有任務(wù)在執(zhí)行,也沒有任務(wù)在等待執(zhí)行,并且無法提交新任務(wù)。

          通過創(chuàng)建并返回一個可用于取消執(zhí)行和/或等待完成的 Future,方法 submit 擴展了基本方法 Executor.execute(java.lang.Runnable)。方法 invokeAnyinvokeAll 是批量執(zhí)行的最常用形式,它們執(zhí)行任務(wù)集合,然后等待至少一個,或全部任務(wù)完成(可使用 ExecutorCompletionService 類來編寫這些方法的自定義變體)。

          Executors 類提供了用于此包中所提供的執(zhí)行程序服務(wù)的工廠方法。

          用法示例

          下面給出了一個網(wǎng)絡(luò)服務(wù)的簡單結(jié)構(gòu),這里線程池中的線程作為傳入的請求。它使用了預(yù)先配置的 Executors.newFixedThreadPool(int) 工廠方法:
           class NetworkService {
          private final ServerSocket serverSocket;
          private final ExecutorService pool;

          public NetworkService(int port, int poolSize) throws IOException {
          serverSocket = new ServerSocket(port);
          pool = Executors.newFixedThreadPool(poolSize);
          }

          public void serve() {
          try {
          for (;;) {
          pool.execute(new Handler(serverSocket.accept()));
          }
          } catch (IOException ex) {
          pool.shutdown();
          }
          }
          }

          class Handler implements Runnable {
          private final Socket socket;
          Handler(Socket socket) { this.socket = socket; }
          public void run() {
          // read and service request
          }
          }

          posted on 2008-11-05 15:46 lqx 閱讀(487) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 黑河市| 云南省| 庆云县| 乐平市| 茌平县| 冕宁县| 灌南县| 凤庆县| 衡水市| 巩留县| 穆棱市| 乾安县| 乌拉特后旗| 道孚县| 加查县| 观塘区| 兰坪| 马公市| 灵台县| 电白县| 宿州市| 东宁县| 昌吉市| 沂源县| 霸州市| 洛扎县| 双辽市| 昌都县| 五大连池市| 抚顺市| 旺苍县| 商都县| 郑州市| 西吉县| 五原县| 昔阳县| 淮滨县| 炎陵县| 河源市| 苍山县| 德江县|