<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 39,  comments - 44,  trackbacks - 0
              J2SE 5.0中的Java.util.concurrent程序包提供了一個(gè)新的線程框架組件,這個(gè)框架組件處理了與建立、執(zhí)行和管理線程相關(guān)的很多低層細(xì)節(jié)信息。在本文中我們將細(xì)致地了解一下它的重要特性。

      如果你使用C、C++或Java先前的版本進(jìn)行多線程編程,就知道在代碼中管理線程是多么頭疼的事情。在單線程程序中,代碼中引起應(yīng)用程序失敗的bug每次都在同一個(gè)點(diǎn)出現(xiàn)。但是在多線程程序中,只有某些原因遇到一起的時(shí)候才會(huì)出現(xiàn)失敗。由于預(yù)見可能引發(fā)應(yīng)用程序失敗的所有條件是非常困難的,所以多線程編程是有挑戰(zhàn)性的。有些程序員從根本上避免這種挑戰(zhàn),而另外一些--聰明的解決問題的人員--則一直坐在他們的計(jì)算機(jī)面前直到問題解決。

      J2SE 5.0平臺(tái)包含了一個(gè)新的并發(fā)工具程序包。這個(gè)程序包中的類替并發(fā)類(concurrent classe)或并發(fā)設(shè)計(jì)中使用的應(yīng)用程序建立阻塞(blocking)。該并發(fā)工具包含下面一些內(nèi)容:

      · 高性能的、靈活的線程池

      · 異步執(zhí)行事務(wù)的框架組件

      · 為并發(fā)訪問優(yōu)化過的集合類宿主(host)

      本文介紹了J2SE 5.0框架組件類和它們的重要特性。本文的下載代碼提供了一些簡(jiǎn)單的、容易使用的示例,它演示了所有的新線程框架組件類。你在閱讀文章內(nèi)容之后運(yùn)行這些示例可以使自己對(duì)這些特性有更好的理解。

      Executor(執(zhí)行器)框架組件

      Executor框架組件提供了一個(gè)簡(jiǎn)單的、標(biāo)準(zhǔn)的、可擴(kuò)充的類,它提供了一些有用的功能,如果沒有這些功能,我們要手工實(shí)現(xiàn)這些它們,會(huì)覺得十分單調(diào)和困難。該框架組件使調(diào)用、調(diào)度和執(zhí)行的操作標(biāo)準(zhǔn)化了。它通過一組執(zhí)行策略為控制異步事務(wù)提供了支持。

      Executor接口執(zhí)行已提交的可以運(yùn)行的事務(wù)。它提供了一條途徑,允許我們把事務(wù)提交從事務(wù)執(zhí)行機(jī)制中分離出來。程序員通常使用Executor代替顯式地(explicitly)建立線程。Executor接口也提供事務(wù)的同步和異步執(zhí)行。

      對(duì)于同步執(zhí)行,使用下面的命令:

    Class MySynExecutor implements Executor{
     public void execute(Runnable r) {
      r.run();
     } 
    }

      對(duì)于異步執(zhí)行,使用下面的命令:

    Class MyASynExecutor implements Executor{
     public void execute(Runnable r) {
      new Thread(r).start();
     }
    }

      ExecutorService(執(zhí)行器服務(wù))類

      ExecutorService類為管理一個(gè)或多個(gè)異步事務(wù)的終止和跟蹤事務(wù)執(zhí)行的過程提供了方法。代碼下載中的MyExecutorService.java文件演示了管理事務(wù)終止的過程。它初始化了大小為三個(gè)的線程池,然后依次添加了線程。當(dāng)線程的數(shù)量達(dá)到線程池的大小限制時(shí),它調(diào)用關(guān)閉(shutdown)方法。在調(diào)用shutdown()方法之后,這個(gè)線程池不再接受新事務(wù)的執(zhí)行。在等待十秒以后,該線程池調(diào)用shutDownNow()。這個(gè)方法會(huì)盡最大的努力來終止所有運(yùn)行中的事務(wù)。在示例中,應(yīng)用程序試圖終止運(yùn)行中的線程失敗了。

      ScheduledExecutorService(調(diào)度執(zhí)行器服務(wù))

      ScheduledExecutorService類是我的最喜歡的類。它對(duì)于調(diào)度那些周期性執(zhí)行的事務(wù)非常方便,而周期性執(zhí)行的事務(wù)對(duì)于清除工作(例如清除你的應(yīng)用程序建立的臨時(shí)文件等等)尤其有用。下載代碼中的MyScheduledExecutorService.java文件通過每五秒鐘發(fā)出"嘟嘟"一聲演示了調(diào)度的過程:

    final Runnable beeper = new Runnable() {
     public void run() { System.out.println("beep"); }
    };
    final ScheduledFuture beeperHandle =scheduler.scheduleAtFixedRate(beeper, 1, 5, SECONDS);
    posted on 2008-01-20 01:43 礦礦 閱讀(2385) 評(píng)論(3)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 日韩不卡免费视频| 免费播放一区二区三区| 亚洲国产精品嫩草影院| 久久亚洲中文无码咪咪爱| 久久国产精品免费一区| 香港a毛片免费观看 | 亚洲麻豆精品果冻传媒| 亚洲福利一区二区| 亚洲熟妇无码av另类vr影视| 男人扒开添女人下部免费视频 | 久久免费动漫品精老司机| 国产免费AV片在线播放唯爱网| 亚洲AV无码乱码在线观看性色扶 | 免费在线观看自拍性爱视频| 免费人成视频在线观看视频 | 亚洲熟妇av一区二区三区漫画 | 免费精品视频在线| 亚洲日本一区二区一本一道 | 伊人久久亚洲综合影院| 亚洲综合久久成人69| 99在线精品视频观看免费| 亚洲深深色噜噜狠狠爱网站 | 在线播放免费播放av片| 国产亚洲成归v人片在线观看| 亚洲色中文字幕在线播放| 国产成人免费片在线观看| 中文字幕亚洲综合精品一区| 免费无码AV片在线观看软件| 亚洲av网址在线观看| 黄网站色成年片大免费高清| 91免费国产精品| 国产午夜亚洲精品午夜鲁丝片| 亚洲av成人片在线观看| 中文字幕亚洲日韩无线码| 免费女人高潮流视频在线观看| 亚洲一区二区无码偷拍| 亚洲欧洲久久久精品| 黄色三级三级免费看| 亚洲av永久无码精品秋霞电影影院| 一级片在线免费看| 免费人成网站7777视频|