中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Java有幾種創建線程池的方法

Java 創建線程池的四種方式

成都創新互聯服務項目包括蒲江縣網站建設、蒲江縣網站制作、蒲江縣網頁制作以及蒲江縣網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,蒲江縣網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到蒲江縣省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!

1、newCachedThreadPool 創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。

2、newFixedThreadPool 創建一個定長線程池,可控制線程最大并發數,超出的線程會在隊列中等待。

3、newScheduledThreadPool 創建一個定長線程池,支持定時及周期性任務執行。

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

newCachedThreadPool

創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,

若無可回收,則新建線程。

package cn.qbz.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test111907 {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newCachedThreadPool();
        for (int i = 0; i < 10; i++) {
            final int temp = i;
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + "   i=" + temp);
                }
            });
        }
    }
}
    public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
    }

newFixedThreadPool

創建一個定長線程池,可控制線程最大并發數,超出的線程會在隊列中等待。

package cn.qbz.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test111907 {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(3);
        for (int i = 0; i < 10; i++) {
            final int temp = i;
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + "   i=" + temp);
                }
            });
        }
    }
}
    public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }

newScheduledThreadPool

創建一個定長線程池,支持定時及周期性任務執行。

package cn.qbz.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Test111907 {
    public static void main(String[] args) {
        final long begin = System.currentTimeMillis();
        ExecutorService executorService = Executors.newScheduledThreadPool(3);
        for (int i = 0; i < 10; i++) {
            final int temp = i;
            final long time = begin;
            executorService.schedule(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + "   i=" + temp + "   time=" + (System.currentTimeMillis() - time));
                }
            }, 5, TimeUnit.SECONDS);
        }
    }
}
    public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) {
        return new ScheduledThreadPoolExecutor(corePoolSize);
    }
    public ScheduledThreadPoolExecutor(int corePoolSize) {
        super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS,
              new DelayedWorkQueue());
    }

newSingleThreadExecutor

創建一個單線程化的線程池,它只會用唯一的工作線程來執行任務,

保證所有任務按照指定順序(FIFO, LIFO, 優先級)執行。

package cn.qbz.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Test111907 {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        for (int i = 0; i < 10; i++) {
            final int temp = i;
            executorService.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + "   i=" + temp);
                }
            });
        }
    }
}

以上就是Java 創建線程池的四種方式的詳細內容,更多請關注創新互聯其它相關文章!

網站標題:Java有幾種創建線程池的方法
當前網址:http://www.2m8n56k.cn/article42/jdsphc.html

成都網站建設公司_創新互聯,為您提供關鍵詞優化網站維護網站建設網站改版電子商務建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設
主站蜘蛛池模板: 91久国产在线观看 | 欧美日韩一区二区综合 | 国产情侣无套精品视频 | 亚洲欧美日韩久久精品第一区 | 91国内精品久久久久影院优播 | 手机在线黄色网址 | 99在线观看精品免费99 | 国产欧美日韩综合二区三区 | 一级做人爱a视频正版免费 一级做性色a爱片久久片 | 色欧美hdvideosxs4k | 秋霞手机入口二日韩区 | 美女黄网站人色视频免费国产 | 国产亚洲欧洲一区二区三区 | 日韩精品一区二区三区乱码 | 亚洲自拍成人 | 无内丝袜透明在线播放 | 成人免费久久精品国产片久久影院 | 国产成人精品自拍 | 欧美在线一区二区三区精品 | 亚洲在成人网在线看 | 免费视频成人国产精品网站 | 99精彩视频 | 极品丝袜高跟91白沙发在线 | 午夜性色福利视频在线视频 | 国产成人综合一区精品 | 久久成年片色大黄全免费网站 | 亚洲毛片免费视频 | 506rr亚洲欧美| 日本一极毛片兔费看 | 三级黄毛片 | 精品视频 九九九 | 日韩一区二区不卡中文字幕 | 亚洲美女综合网 | 一级黄色欧美片 | 亚洲欧美一区二区三区在线 | 自拍偷拍亚洲视频 | 精品一区二区三区免费观看 | 国产高清三级 | 久久免费精品视频在线观看 | 欧美久久精品 | 九九在线观看精品视频6 |