隨筆-128  評論-55  文章-5  trackbacks-0
          介紹

          計時器可以提供運行基于時間的工作任務的功能,在計時器的管理下,特定的任務可在某一時間運行一次,也可以按指定的時間間隔反復運行。在眾多廠商提供的計時器中應用得比較多的有以下三種:

          ● java.util.Timer
          Sun JDK 提供的一種輕量級的計時器。

          ● Commonj Timer
          IBM 和 BEA 聯合制定和推出的一種適用于 J2EE 環境的計時器。
           
          ● WebSphere Application Server Scheduler
          IBM WebSphere Application Server 提供的一種功能強大的計時器。


          java.util.Timer

          java.util.Timer 是 Sun JDK 提供的一種計時器,用于使后臺線程按計劃執行指定任務,這些任務可以被執行一次,也可以被定期執行。每個 Timer 對象對應一個后臺線程,順序地執行所有計時器任務。如果完成某個計時器任務的時間太長,那么它會“獨占”計時器的任務執行線程,從而可能延遲后續任務的執行。對 Timer 對象最后的引用完成并且所有未處理的任務都已執行完成后,計時器的任務執行線程會正常終止(并且成為垃圾回收的對象)。


          java.util.Timer 簡單易用,比較適合提供輕量級的計時器功能。由于其創建的線程會超出容器的管理范圍,因此不能應用于管理的環境中。如果用戶需要在 J2EE 環境中提供計時器功能,可考慮使用后面即將介紹的 Commonj Timer 或 WebSphere Application Server Scheduler。



          Commonj Timer

          Commonj Timer 是 Commonj 規范的一部分,它由 IBM 和 BEA 聯合制定和推出,用以更好的響應客戶和獨立軟件商的需求,給開發人員在開發可移植的服務端應用程序時提供一些更加簡單和功能更加強大的方法。這個規范主要包括以下幾個部分:Service Component Architecture,Service Data Objects,Work Manager and Timer 和 Enterprise Metadata Discovery。其中,Work Manager and Time 為在應用服務器中支持并發任務的執行提供了一些簡單 API。這使用戶可以方便地在 Servlet 和 EJB 中執行并發的計劃任務,從而提高呑吐量,縮短服務端程序的響應時間,很好地解決了在 J2EE 環境中執行用戶自定義的多線程并發與計時器服務的問題。

          Commonj Timer API 包括三個接口:TimerManager, Timer 和 TimerListener。應用程序可以通過 TimerManager 來定期調用 TimerListener。每個 TimerManager 的 shcedule 方法返回一個 Timer 對象。用戶可以通過 TimerManager 的 JNDI 名稱在管理環境的上下文中查找 TimerManager。



          java.util.Timer、 CommonJ Timer 和 WebSphere Application Server Scheduler 為用戶提供了不同級別的、適用與不同范圍的計時器,用戶可以根據各自的需求使用不同的計時器,表 1 列出了 java.util.Timer、Commonj Timer 和 WebSphere Application Server Scheduler 之間比較結果,用戶在使用計時器時可以用來參照比較。

          表 1. 計時器比較結果
          java.util.Timer
          來源:Sun
          優點:易于使用輕量級
          缺點:創建的線程會超出容器管理范圍
          適用范圍:非 J2EE 環境

          Commonj Timer

          來源:BEA and IBM
          優點:解決了 java.util.Timer 創建的線程超出容器管理范圍的問題;不同于 JMX Timer Service 與 JMX framework 之間的緊耦合,提供了更加友好和獨立的 API
          缺點:timer 是瞬時的、非事務性的,并且運行于創建它的 JVM 中,不適合于集群環境
          適用范圍:J2EE 普通環境

          java.util.Timer
          來源:WebSphere Application Server Scheduler
          優點:易于管理 具有持久性和事務性 具有靈活的時間定制方式 具有擴展性,適用于集群環境
          缺點:與 WebSphere Application Server 緊耦合
          適用范圍:J2EE 普通和集群環境

          詳見:http://www.ibm.com/developerworks/cn/java/j-lo-timer/index.html


          Author: orangelizq
          email: orangelizq@163.com

          歡迎大家訪問我的個人網站 萌萌的IT人
          posted on 2008-09-05 11:46 桔子汁 閱讀(731) 評論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 靖江市| 普安县| 勐海县| 武穴市| 虹口区| 文昌市| 台东市| 若尔盖县| 昌都县| 古丈县| 东至县| 长丰县| 兴城市| 博乐市| 靖西县| 抚宁县| 利川市| 伊宁市| 秦皇岛市| 襄樊市| 阜平县| 遂溪县| 绥芬河市| 平果县| 新和县| 敖汉旗| 沭阳县| 阳朔县| 泸西县| 崇文区| 东城区| 沁水县| 永修县| 石棉县| 赤壁市| 嵊州市| 永和县| 渭南市| 潮安县| 滕州市| 荃湾区|