隨筆-128  評(píng)論-55  文章-5  trackbacks-0
          介紹

          計(jì)時(shí)器可以提供運(yùn)行基于時(shí)間的工作任務(wù)的功能,在計(jì)時(shí)器的管理下,特定的任務(wù)可在某一時(shí)間運(yùn)行一次,也可以按指定的時(shí)間間隔反復(fù)運(yùn)行。在眾多廠商提供的計(jì)時(shí)器中應(yīng)用得比較多的有以下三種:

          ● java.util.Timer
          Sun JDK 提供的一種輕量級(jí)的計(jì)時(shí)器。

          ● Commonj Timer
          IBM 和 BEA 聯(lián)合制定和推出的一種適用于 J2EE 環(huán)境的計(jì)時(shí)器。
           
          ● WebSphere Application Server Scheduler
          IBM WebSphere Application Server 提供的一種功能強(qiáng)大的計(jì)時(shí)器。


          java.util.Timer

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


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



          Commonj Timer

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

          Commonj Timer API 包括三個(gè)接口:TimerManager, Timer 和 TimerListener。應(yīng)用程序可以通過(guò) TimerManager 來(lái)定期調(diào)用 TimerListener。每個(gè) TimerManager 的 shcedule 方法返回一個(gè) Timer 對(duì)象。用戶可以通過(guò) TimerManager 的 JNDI 名稱在管理環(huán)境的上下文中查找 TimerManager。



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

          表 1. 計(jì)時(shí)器比較結(jié)果
          java.util.Timer
          來(lái)源:Sun
          優(yōu)點(diǎn):易于使用輕量級(jí)
          缺點(diǎn):創(chuàng)建的線程會(huì)超出容器管理范圍
          適用范圍:非 J2EE 環(huán)境

          Commonj Timer

          來(lái)源:BEA and IBM
          優(yōu)點(diǎn):解決了 java.util.Timer 創(chuàng)建的線程超出容器管理范圍的問(wèn)題;不同于 JMX Timer Service 與 JMX framework 之間的緊耦合,提供了更加友好和獨(dú)立的 API
          缺點(diǎn):timer 是瞬時(shí)的、非事務(wù)性的,并且運(yùn)行于創(chuàng)建它的 JVM 中,不適合于集群環(huán)境
          適用范圍:J2EE 普通環(huán)境

          java.util.Timer
          來(lái)源:WebSphere Application Server Scheduler
          優(yōu)點(diǎn):易于管理 具有持久性和事務(wù)性 具有靈活的時(shí)間定制方式 具有擴(kuò)展性,適用于集群環(huán)境
          缺點(diǎn):與 WebSphere Application Server 緊耦合
          適用范圍:J2EE 普通和集群環(huán)境

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


          Author: orangelizq
          email: orangelizq@163.com

          歡迎大家訪問(wèn)我的個(gè)人網(wǎng)站 萌萌的IT人
          posted on 2008-09-05 11:46 桔子汁 閱讀(731) 評(píng)論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 新干县| 隆昌县| 渭南市| 大城县| 抚顺市| 开阳县| 西城区| 博乐市| 大田县| 齐齐哈尔市| 建水县| 无棣县| 涡阳县| 彩票| 凤山市| 潞西市| 鄄城县| 沧州市| 巧家县| 满洲里市| 通州区| 长乐市| 宾川县| 呼和浩特市| 临洮县| 绥化市| 永胜县| 同心县| 湘潭市| 两当县| 柏乡县| 海丰县| 丘北县| 金沙县| 清新县| 太康县| 利辛县| 博乐市| 永胜县| 洪江市| 许昌市|