<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)站導航:
     
    主站蜘蛛池模板: 国产成人啪精品视频免费网| 日本卡1卡2卡三卡免费| 亚洲电影一区二区| 永久免费AV无码网站在线观看| 久久久免费的精品| 国产99精品一区二区三区免费| 亚洲大尺度无码无码专线一区| 久久青青草原亚洲av无码app| 国产乱辈通伦影片在线播放亚洲 | 亚洲а∨精品天堂在线| 亚洲国色天香视频| 亚洲人成网站日本片| 亚洲精品在线播放视频| 91亚洲自偷在线观看国产馆| 国产亚洲婷婷香蕉久久精品| 老司机亚洲精品影视www| 亚洲色欲色欲www在线丝| 国产精品亚洲片在线观看不卡| 亚洲另类激情综合偷自拍图| 国产亚洲AV无码AV男人的天堂| 亚洲国产精品va在线播放| 亚洲精品影院久久久久久| 亚洲精品无码久久久久久| 亚洲国产成人手机在线观看| 噜噜综合亚洲AV中文无码| 黄网站色视频免费观看45分钟| 成人免费网站视频www| 久久午夜羞羞影院免费观看| 中文字幕无码不卡免费视频| 可以免费观看一级毛片黄a| 亚洲中文字幕不卡无码| 亚洲日本久久一区二区va| 羞羞视频免费网站日本| 免费一级毛片在线播放视频| 97在线观免费视频观看| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲综合在线观看视频| 一区二区在线视频免费观看| 精品无码免费专区毛片| 亚洲AV日韩精品久久久久久久| 亚洲成a人无码亚洲成av无码|