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

Java自帶的Future多線程模式

2013-11-23 19:42:03  來源: Java高級技術 
    在Java提供了大量處理多線程的接口以前只是簡單的使用其線程池最近發現Future模式也有
   
    只貼出了部分代碼
   
    定義池
   
      private static final ExecutorService worker = ExecutorsnewFixedThreadPool(N)// 線程池
   
    private static List<Future<?》 futureList = new ArrayList<Future<?》()// 工作中的線程
   
    使用線程池
   
    futureListadd(workersubmit(this))
   
    結束線程
   
      // 結束線程池中的線程執行(中斷)
   
    public static void cancel() {
   
    for (Future<?> f : futureList) {
   
       fcancel(true)
   
      }
   
    }
   
    注Future為線程的執行結果票據當使用Callable方式執行時可以得到線程的執行結果fget()同時也可以控制某線程的結束和執行狀態當使用Runnable方式執行時得到結果是空但也可以對線程進行控制
   
    補充
   
    應該是調用了線程的中斷方法ThreadcurrentThread()interrupt()但並不像stop方法那樣立即結束掉子線程而是改變了中斷的信號量Threadinterrupted()在阻塞的線程會拋出InterruptedException異常但是在非阻塞的條件下子線程會繼續執行需要在循環中自己判斷信號量來拋出異常
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27329.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.