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

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

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

    新的起點 新的開始

    快樂生活 !

    學習實踐 JDK5 concurrent 并行包之executor(一)

    這是介紹使用JDK 并行包之executor 第一部分,Executors 注意是復數,是最主要的工廠,通過它可以創建許多有用的東東,這部分介紹是如何創建一個固定的線程池。具體參考代碼中的注釋。

    1
     package net.vincent.study.executor;
     2 import java.util.concurrent.ExecutorService;
     3 import java.util.concurrent.Executors;
     4 
     5 
     6 /** This is part1 of study executor package in concurrent on JDK 5.0
     7  * 
     8  * @author wma
     9  */
    10 public class Part1 {
    11 
    12      /**
    13      Create a fixed threadPool for test.
    14      * @param Number of thread of threadPool
    15      * @return Created threadPool
    16      * @throws null
    17      */
    18     public static ExecutorService getThreadPool(int numberOfThread){
    19         if(numberOfThread<=0){
    20             return null;
    21             }
    22         ExecutorService exec = Executors.newFixedThreadPool(numberOfThread);
    23         return exec;
    24     } 
    25     /**
    26      * Create ruunbale, this runnable will random sleep.
    27      * @return a Runnbale
    28      */
    29     public static Runnable getRunnable(){
    30         Runnable run = new Runnable() {
    31             public void run() {
    32               long time = (long) (Math.random() * 1000);
    33               System.out.println("Sleeping " + time + "ms");
    34                 try {
    35                   Thread.sleep(time);
    36                 } catch (InterruptedException e) {
    37                 }
    38             }
    39           };
    40           return run;
    41     }
    42     /**In main method, we create a threadPool(ThreadPoolExecutor) and capability is 4.
    43      * After we submit 100 thread to this threadPool(ThreadPoolExecutor) and run it.
    44      * Notice: If number of thread you submitted exceed capability, and threadPool(ThreadPoolExecutor) dont block Main method,
    45      * because threadPool add other thread to queue.see code of ThreadPoolExecutor
    46      * 
    47      *  private final BlockingQueue<Runnable> workQueue;
    48      *  private final HashSet<Worker> workers = new HashSet<Worker>();
    49      *  try {
    50             if (poolSize < corePoolSize && runState == RUNNING)
    51                 t = addThread(firstTask); // add other thread to queue.
    52         } finally {
    53             mainLock.unlock();
    54         }
    55         if (t == null)
    56             return false;
    57         t.start();
    58         return true;
    59         
    60          private Thread addThread(Runnable firstTask) {
    61         Worker w = new Worker(firstTask);
    62         Thread t = threadFactory.newThread(w);
    63         if (t != null) {
    64             w.thread = t;
    65             workers.add(w);
    66             int nt = ++poolSize;
    67             if (nt > largestPoolSize)
    68                 largestPoolSize = nt;
    69         }
    70         return t;
    71     }
    72      * 
    73      * @param args
    74      */
    75     public static void main(String[] args) {
    76         ExecutorService  exe = getThreadPool(4);
    77         for(int i =0 ; i<100; i++)
    78         exe.execute(getRunnable());
    79         exe.shutdown();
    80         
    81         
    82     }
    83 
    84 }
    85 

    posted on 2007-09-26 14:32 advincenting 閱讀(653) 評論(1)  編輯  收藏

    評論

    # re: 學習實踐 JDK5 concurrent 并行包之executor(一) 2007-09-27 19:19 千里冰封

    建議樓主加點注釋  回復  更多評論   


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


    網站導航:
     

    公告

    Locations of visitors to this pageBlogJava
  • 首頁
  • 新隨筆
  • 聯系
  • 聚合
  • 管理
  • <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    統計

    常用鏈接

    留言簿(13)

    隨筆分類(71)

    隨筆檔案(179)

    文章檔案(13)

    新聞分類

    IT人的英語學習網站

    JAVA站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人无码区免费A片视频WWW| 无码国产精品一区二区免费3p| 亚洲人成网站观看在线播放| 午夜寂寞在线一级观看免费| 亚洲天堂2016| 国产99久久久国产精免费 | 一级成人生活片免费看| 国产一区在线观看免费| 人人鲁免费播放视频人人香蕉| 免费人成视频在线观看视频| 一区二区三区视频免费观看| 亚洲午夜无码片在线观看影院猛 | 拔擦拔擦8x华人免费久久 | 久久久久亚洲AV无码永不| 最近新韩国日本免费观看| 亚洲AV第一页国产精品| 老牛精品亚洲成av人片| 亚洲精品国产精品国自产观看| 国产免费福利体检区久久| 午夜视频在线观看免费完整版| 精品国产日韩亚洲一区在线| 亚洲色图综合在线| 国产精品免费一区二区三区四区| 久久99亚洲网美利坚合众国| 免费无码精品黄AV电影| 亚洲高清资源在线观看| 最新仑乱免费视频| 男人和女人高潮免费网站| 久久精品国产精品亚洲艾| 好先生在线观看免费播放| 深夜a级毛片免费无码| 亚洲av日韩av无码黑人| 67194成是人免费无码| 一级毛片在线免费播放| 激情内射亚洲一区二区三区| 成人人观看的免费毛片| 中文在线免费观看| 91麻豆国产自产在线观看亚洲| 鲁啊鲁在线视频免费播放| 免费一级毛片在线播放| 久久狠狠躁免费观看|