<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"); 
             } 
      } 


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲一区无码中文字幕| 色www永久免费| 182tv免费观看在线视频| 999zyz**站免费毛片| 2015日韩永久免费视频播放 | 亚洲女人被黑人巨大进入| 亚洲日韩一区二区一无码| 人成午夜免费视频在线观看| 亚洲精品白色在线发布| 一级毛片成人免费看免费不卡| 国产精品亚洲成在人线| 韩日电影在线播放免费版| 青青草原亚洲视频| a在线视频免费观看| 亚洲欧洲美洲无码精品VA| 免费看少妇高潮成人片| 亚洲成AV人片天堂网无码| 日本免费中文视频| 亚洲美女aⅴ久久久91| 扒开双腿猛进入爽爽免费视频| 久久精品国产亚洲AV忘忧草18| 最近免费中文字幕大全视频| 精品亚洲成a人在线观看| 免费少妇a级毛片人成网| 精品国产免费一区二区三区| 亚洲成Av人片乱码色午夜| 无码乱肉视频免费大全合集| 亚洲日韩av无码中文| 亚洲av无码专区在线观看素人| 久久国产福利免费| 亚洲成a人不卡在线观看| 在线免费观看一级毛片| 免费又黄又爽又猛大片午夜| 亚洲VA中文字幕不卡无码| 嫖丰满老熟妇AAAA片免费看| 黄色免费在线观看网址| 久久久久久久久亚洲| 天天看免费高清影视| 人妻免费一区二区三区最新| 亚洲国产av高清无码| 亚洲精品无码久久毛片|