<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 閱讀(210) 評論(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"); 
             } 
      } 


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


    網站導航:
     
    主站蜘蛛池模板: 日产国产精品亚洲系列| 免费网站看v片在线香蕉| 色多多A级毛片免费看| 亚洲性无码AV中文字幕| 亚洲视频一区在线播放| 国产精品亚洲а∨无码播放 | 亚洲AV人人澡人人爽人人夜夜| 爽爽日本在线视频免费| 欧美好看的免费电影在线观看| 污视频在线观看免费| 日韩人妻一区二区三区免费| 国产免费高清69式视频在线观看| 亚洲jizzjizz少妇| 亚洲欧美一区二区三区日产| 久久久久亚洲国产| 看亚洲a级一级毛片| 国产精品黄页免费高清在线观看 | 国产成人一区二区三区免费视频| 日韩视频在线精品视频免费观看| 毛片a级毛片免费播放下载| 成年人网站在线免费观看| 日韩一区二区在线免费观看 | 免费视频一区二区| 18勿入网站免费永久| 国产青草视频在线观看免费影院| 又大又黄又粗又爽的免费视频 | 热re99久久6国产精品免费| 久久久久久久久免费看无码| 免费大香伊蕉在人线国产| 亚洲AV福利天堂一区二区三| 亚洲国产成a人v在线| 亚洲av乱码一区二区三区按摩| www在线观看免费视频| A级毛片内射免费视频| 亚洲色成人网站WWW永久| 99热亚洲色精品国产88| 十八禁在线观看视频播放免费| 91嫩草国产在线观看免费| 亚洲欧洲无码AV电影在线观看| 亚洲中文字幕一二三四区| 日韩精品无码一区二区三区免费|