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

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

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

    posts - 38, comments - 2, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    (轉(zhuǎn))隊列和線程池簡單示例

    Posted on 2009-08-03 18:18 AntiquMan 閱讀(200) 評論(0)  編輯  收藏 所屬分類: Thread

    基本演示了線程池和隊列的應用

      public class WorkQueue { 
       

       private final int nThreads;//線程池的大小 
       private final PoolWorker[] threads;//用數(shù)組實現(xiàn)線程池 
       private final LinkedList queue;//任務隊列 

      public WorkQueue(int nThreads){ 
         this.nThreads = nThreads; 
         queue = new LinkedList(); 
         threads = new PoolWorker[nThreads]; 

          for (int i=0; i<nThreads;i++){

             threads[i] = new PoolWorker(); 
             threads[i].start();//啟動所有工作線程 
          } 
      } 

      public void execute(Runnable r) {//
    任務 
        synchronized(queue) { 
                queue.addLast(r); 
                queue.notify(); 
        } 
      } 

      private class PoolWorker extends Thread {//工作線程類 
            public void run() { 
                   Runnable r; 
                   while (true) { 
                        synchronized(queue) { 
                          while (queue.isEmpty()) {//如果任務隊列中沒有任務,等待 
                            try{ 
                              queue.wait(); 
                            }catch (InterruptedException ignored){} 
                          }    
                           r = (Runnable) queue.removeFirst();//有任務時,取出任務 
                       } 
                       try { 
                           r.run();//執(zhí)行任務 
                       }catch (RuntimeException e) { 
                          // You might want to log something here 
                      } 
                  } 
          } 
       } 


     public static void main(String args[]){ 
          WorkQueue wq=new WorkQueue(10);//10個工作線程 
          Mytask r[]=new Mytask[20];//20個任務 
       
          for(int i=0;i<20;i++){ 
               r[i]=new Mytask(); 
               wq.execute(r[i]); 
          }       
     } 

    class Mytask implements Runnable{//任務接口 
             public void run(){ 
                  String name=Thread.currentThread().getName(); 
                  try{ 
                      Thread.sleep(100);//模擬任務執(zhí)行的時間 
                  }catch(InterruptedException e){} 
                  System.out.println(name+" executed OK"); 
             } 
      } 


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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 五级黄18以上免费看| 亚洲欧洲日产国码在线观看| 亚洲AV成人精品一区二区三区| 全免费毛片在线播放| 亚洲精品国产成人中文| 最近中文字幕国语免费完整| 亚洲自偷精品视频自拍| 黄网站色在线视频免费观看| 亚洲制服丝袜精品久久| 毛片免费观看的视频| 亚洲国产精品久久久久秋霞小| 国产大片91精品免费观看男同| 亚洲爆乳成av人在线视菜奈实 | 91青青国产在线观看免费| 99人中文字幕亚洲区| 一二三四免费观看在线视频中文版| 亚洲国产激情在线一区| 国产美女无遮挡免费网站| 国产精品永久免费视频| 久久精品亚洲中文字幕无码网站 | 免费在线黄色电影| 亚洲网站视频在线观看| 成人免费看片又大又黄| 又粗又长又爽又长黄免费视频| 综合亚洲伊人午夜网| 蜜臀AV免费一区二区三区| 亚洲依依成人亚洲社区| 国产成人精品日本亚洲专区| 久久免费公开视频| 亚洲欧洲无码一区二区三区| 亚洲人妻av伦理| 久草视频在线免费| 青青久久精品国产免费看| 久久久久亚洲av无码专区蜜芽| 免费AA片少妇人AA片直播| 天堂亚洲免费视频| 亚洲精品白色在线发布| 免费一级毛片在线播放| 1000部夫妻午夜免费| 一区二区三区免费在线视频| 亚洲伊人久久精品|