久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java創(chuàng)建線程池的四種方式是什么

      java創(chuàng)建線程池的四種方式是:1、newCachedThreadPool創(chuàng)建一個可緩存線程池;2、newFixedThreadPool創(chuàng)建一個定長線程池;3、newScheduledThreadPool創(chuàng)建一個定長線程池。

      java創(chuàng)建線程池的四種方式是什么

      Java通過Executors提供四種線程池,分別為:
      newCachedThreadPool創(chuàng)建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。

      newFixedThreadPool 創(chuàng)建一個定長線程池,可控制線程最大并發(fā)數(shù),超出的線程會在隊列中等待。

      newScheduledThreadPool 創(chuàng)建一個定長線程池,支持定時及周期性任務執(zhí)行。

      newSingleThreadExecutor 創(chuàng)建一個單線程化的線程池,它只會用唯一的工作線程來執(zhí)行任務,保證所有任務按照指定順序(FIFO, LIFO, 優(yōu)先級)執(zhí)行。

      詳細內(nèi)容可參見博友的博客Java并發(fā)編程:線程池的使用

      1.newCachedThreadPool 這里的線程池是無限大的,當一個線程完成任務之后,這個線程可以接下來完成將要分配的任務,而不是創(chuàng)建一個新的線程。

      public static void main(String[] args) {           ExecutorService cachedThreadPool = Executors.newCachedThreadPool();           for (int i = 0; i < 10; i++) {               final int index = i;               try {                   Thread.sleep(10);               } catch (InterruptedException e) {                   e.printStackTrace();               }               cachedThreadPool.execute(new Runnable() {                   public void run() {                       System.out.println(index);                   }               });           }       }

      2.newFixedThreadPool

      public static void main(String[] args) {           ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);           for (int i = 0; i < 10; i++) {               final int index = i;               fixedThreadPool.execute(new Runnable() {                   public void run() {                       try {                           System.out.println(index);                           Thread.sleep(10);                       } catch (InterruptedException e) {                           e.printStackTrace();                       }                   }               });           }       }

      3.newScheduledThreadPoo

      public static void main(String[] args) {           ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);           for (int i = 0; i < 10; i++) {               scheduledThreadPool.schedule(new Runnable() {                   public void run() {                       System.out.println("delay 3 seconds");                   }               }, 3, TimeUnit.SECONDS);           }          }

      4.newSingleThreadExecutor 按順序來執(zhí)行線程任務 但是不同于單線程,這個線程池只是只能存在一個線程,這個線程死后另外一個線程會補上

      public static void main(String[] args) {           ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();           for (int i = 0; i < 10; i++) {               final int index = i;               singleThreadExecutor.execute(new Runnable() {                   public void run() {   /*                  System.out.println(index);*/                       try {                           System.out.println(index);                           Thread.sleep(2000);                       } catch (InterruptedException e) {                           e.printStackTrace();                       }                   }               });           }       }

      推薦教程: 《java教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號