<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

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

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

      public class WorkQueue { 
       

       private final int nThreads;//線程池的大小 
       private final PoolWorker[] threads;//用數組實現線程池 
       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();//執行任務 
                       }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);//模擬任務執行的時間 
                  }catch(InterruptedException e){} 
                  System.out.println(name+" executed OK"); 
             } 
      } 


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


    網站導航:
     
    主站蜘蛛池模板: 精品国产成人亚洲午夜福利| 久久精品国产亚洲av日韩| 亚洲一区二区三区不卡在线播放| 久久不见久久见免费影院www日本| 国产在线观看免费视频播放器| 一本色道久久88亚洲精品综合| 在线看免费观看AV深夜影院| 亚洲成av人片不卡无码| 国产一卡二卡3卡四卡免费| 亚洲成在人线中文字幕| 91免费播放人人爽人人快乐| 亚洲av产在线精品亚洲第一站 | 亚洲成人福利在线| 精品福利一区二区三区免费视频 | 亚洲福利在线播放| 国产精品亚洲专区无码WEB| 日本高清免费网站| 一级做受视频免费是看美女| 在线播放亚洲第一字幕| 久久成人无码国产免费播放| 亚洲国产精品张柏芝在线观看| 国产h视频在线观看免费| 男人的天堂av亚洲一区2区| 亚洲国产成人精品无码久久久久久综合 | 久久久亚洲精品视频| 91精品国产免费网站| 亚洲一区二区无码偷拍| 亚洲国产成人VA在线观看| 免费精品一区二区三区第35| 综合自拍亚洲综合图不卡区| 德国女人一级毛片免费| www在线观看播放免费视频日本| 亚洲AV无码国产丝袜在线观看| 91成年人免费视频| 国产精品久久久久久亚洲小说| 亚洲人成无码网站| 色se01短视频永久免费| 成人免费夜片在线观看| 亚洲小视频在线播放| 亚洲欧洲中文日韩av乱码| 麻豆高清免费国产一区|