91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中線程池創建的方式有哪些

發布時間:2021-04-21 17:15:51 來源:億速云 閱讀:133 作者:Leah 欄目:編程語言

本篇文章為大家展示了java中線程池創建的方式有哪些,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Java可以用來干什么

Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。

1. newCachedThreadPool

創建一個線程池,如果線程池中的線程數量過大,它可以有效的回收多余的線程,如果線程數不足,那么它可以創建新的線程。

public static void method() throws Exception {    ExecutorService executor = Executors.newCachedThreadPool();    for (int i = 0; i < 5; i++) {        final int index = i;        Thread.sleep(1000);        executor.execute(new Runnable() {            @Override            public void run() {                System.out.println(Thread.currentThread().getName() + "  " + index);            }        });    }}

2. newFixedThreadPool

創建固定大小的線程池。每次提交一個任務就創建一個線程,直到線程達到線程池的最大大小。線程池的大小一旦達到最大值就會保持不變,如果某個線程因為執行異常而結束,那么線程池會補充一個新線程。

public static void method_01() throws InterruptedException {    ExecutorService executor = Executors.newFixedThreadPool(1);    for (int i = 0; i < 10; i++) {        Thread.sleep(1000);        final int index = i;        executor.execute(() -> {            try {                Thread.sleep(2 * 1000);            } catch (InterruptedException e) {                e.printStackTrace();            }            System.out.println(Thread.currentThread().getName() + "  " + index);        });    }    executor.shutdown();}

3. newScheduledThreadPool

創建一個大小無限的線程池。此線程池支持定時以及周期性執行任務的需求。

public class TestScheduledThreadPoolExecutor {
 
    public static void main(String[] args) {
 
        ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
 
        exec.scheduleAtFixedRate(new Runnable() {//每隔一段時間就觸發異常
 
                      @Override
 
                      publicvoid run() {
 
                           //throw new RuntimeException();
 
                           System.out.println("================");
 
                      }
 
                  }, 1000, 5000, TimeUnit.MILLISECONDS);
 
        exec.scheduleAtFixedRate(new Runnable() {//每隔一段時間打印系統時間,證明兩者是互不影響的
 
                      @Override
 
                      publicvoid run() {
 
                           System.out.println(System.nanoTime());
 
                      }
 
                  }, 1000, 2000, TimeUnit.MILLISECONDS);
 
    }
 
}

4.newSingleThreadExecutor

單個線程的線程池,即線程池中每次只有一個線程工作,單線程串行執行任務。

public class MyThread extends Thread {
 
    @Override
 
    public void run() {
 
        System.out.println(Thread.currentThread().getName() + "正在執行。。。");
 
    }
 
}

上述內容就是java中線程池創建的方式有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荣昌县| 迁西县| 阜阳市| 五家渠市| 务川| 长泰县| 土默特左旗| 株洲市| 慈利县| 耿马| 左贡县| 钟山县| 蕉岭县| 长丰县| 莎车县| 吉安县| 射洪县| 隆德县| 清流县| 淮阳县| 通道| 秀山| 专栏| 华容县| 腾冲县| 时尚| 隆化县| 东海县| 神池县| 元氏县| 屏东县| 宽甸| 沅陵县| 汤阴县| 宜昌市| 武冈市| 平原县| 固阳县| 栾城县| 慈溪市| 民丰县|