日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java并發(fā)編程之Executors類詳解

瀏覽:209日期:2022-08-10 13:09:19
一、Executors的理解 Executors類屬于java.util.concurrent包; 線程池的創(chuàng)建分為兩種方式:ThreadPoolExecutor 和 Executors; Executors(靜態(tài)Executor工廠)用于創(chuàng)建線程池; 工廠和工具方法Executor , ExecutorService , ScheduledExecutorService , ThreadFactory和Callable在此包中定義的類;

jdk1.8API中的解釋如下:

Java并發(fā)編程之Executors類詳解

二、Executors類圖結(jié)構(gòu)

Java并發(fā)編程之Executors類詳解

三、Executors常用的方法

Java并發(fā)編程之Executors類詳解

public static ExecutorService newFixedThreadPool(int nThreads) 一種線程數(shù)量固定的線程池,當線程處于空閑狀態(tài)時,他們并不會被回收,除非線程池被關(guān)閉。當所有的線程都處于活動狀態(tài)時,新的任務都會處于等待狀態(tài),直到有線程空閑出來。 public static ExecutorService newSingleThreadExecutor() 創(chuàng)建單個線程。它適用于需要保證順序地執(zhí)行各個任務;并且在任意時間點,不會有多個線程是活動的應用場景。 public static ExecutorService newCachedThreadPool() 創(chuàng)建一個根據(jù)需要創(chuàng)建新線程的線程池,但在可用時將重新使用以前構(gòu)造的線程, 如果沒有可用的線程,將創(chuàng)建一個新的線程并將其添加到該池中。 未使用六十秒的線程將被終止并從緩存中刪除。public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) 創(chuàng)建一個線程池,可以調(diào)度命令在給定的延遲之后運行,或定期執(zhí)行, 支持執(zhí)行定時性或周期性任務。 public static ExecutorService newWorkStealingPool(int parallelism) 創(chuàng)建一個維護足夠的線程以支持給定的并行級別的線程池,并且可以使用多個隊列來減少爭用。 ( jdk1.8版本新增的方法 )四、Executors類中常用方法示例

1、newFixedThreadPool方法示例

代碼

package com.xz.thread.executors;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @description: * @author: xz * @create: 2021-06-16 21:33 */public class Demo { public static void main(String[] args) {//創(chuàng)建數(shù)量固定的線程池,線程池數(shù)量為3ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);for(int i=0;i<5;i++){ fixedThreadPool.execute(new Runnable() {@Overridepublic void run() { System.out.println(Thread.currentThread().getName()); try {Thread.sleep(500);System.out.println('睡眠一秒'); } catch (InterruptedException e) {e.printStackTrace(); }} });} }}

輸出結(jié)果如下圖

Java并發(fā)編程之Executors類詳解

結(jié)論:示例中創(chuàng)建了數(shù)量固定為3的線程,由輸出結(jié)果截圖可知,遍歷次數(shù)為5次,當執(zhí)行一輪(3次)后,停頓一秒鐘,直到有線程空閑出來,才繼續(xù)第4次執(zhí)行。

2、newSingleThreadExecutor方法示例

代碼

package com.xz.thread.executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @description: * @author: xz * @create: 2021-06-15 22:33 */public class Demo { public static void main(String[] args) {//創(chuàng)建單個線程ExecutorService singleThreadPool = Executors.newSingleThreadExecutor();for(int i=0;i<5;i++){ singleThreadPool.execute(new Runnable() {@Overridepublic void run() { System.out.println(Thread.currentThread().getName()); try {Thread.sleep(1000);System.out.println('睡眠一秒'); } catch (InterruptedException e) {e.printStackTrace(); }} });} }}

輸出結(jié)果如下圖

Java并發(fā)編程之Executors類詳解

結(jié)論:示例中創(chuàng)建了創(chuàng)建單個線程,每執(zhí)行一次任務后,睡眠一秒,保證順序地執(zhí)行各個任務。

3、newCachedThreadPool方法 代碼

package com.xz.thread.executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @description: * @author: xz * @create: 2021-06-15 22:33 */public class Demo { public static void main(String[] args) {//創(chuàng)建帶有緩存功能的線程池ExecutorService cachedThreadPool = Executors.newCachedThreadPool();for(int i=0;i<5;i++){ cachedThreadPool.execute(new Runnable() {@Overridepublic void run() { System.out.println(Thread.currentThread().getName()); try {Thread.sleep(1000);System.out.println('睡眠一秒'); } catch (InterruptedException e) {e.printStackTrace(); }} });} }}

輸出結(jié)果如下圖

Java并發(fā)編程之Executors類詳解

結(jié)論:示例中根據(jù)需要創(chuàng)建帶有緩存線程的線程池,并在可用時將重新使用以前構(gòu)造的線程。

4、newScheduledThreadPool方法示例

代碼

package com.xz.thread.executor;import java.time.LocalDateTime;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** * @description: * @author: xz * @create: 2021-06-15 22:33 */public class Demo { public static void main(String[] args) {//創(chuàng)建執(zhí)行周期性任務的線程池ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(3);/** * schedule(Runnable command,long delay, TimeUnit unit)方法參數(shù)解析 * command 表示執(zhí)行任務命令 * delay 表示從現(xiàn)在開始延遲執(zhí)行的時間 * unit 延時參數(shù)的時間單位 */scheduledThreadPool.schedule(new Runnable() { @Override public void run() {System.out.println('scheduledThreadPool:'+LocalDateTime.now()); }},1L, TimeUnit.MINUTES);System.out.println('當前時間:'+LocalDateTime.now()); }}

輸出結(jié)果如下圖

Java并發(fā)編程之Executors類詳解

結(jié)論:示例中創(chuàng)建執(zhí)行周期性或定時性任務的線程池,由輸出結(jié)果可知,設置的1分鐘后執(zhí)行任務已經(jīng)生效。

五、Executors創(chuàng)建線程池原理

1、無論是創(chuàng)建何種類型線程池(newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool等等),均會調(diào)用ThreadPoolExecutor構(gòu)造函數(shù)。

Java并發(fā)編程之Executors類詳解

Java并發(fā)編程之Executors類詳解Java并發(fā)編程之Executors類詳解

2、 ThreadPoolExecutor構(gòu)造函數(shù)中的參數(shù)解析

corePoolSize 核心線程最大數(shù)量,通俗點來講就是,線程池中常駐線程的最大數(shù)量 maximumPoolSize 線程池中運行最大線程數(shù)(包括核心線程和非核心線程) keepAliveTime 線程池中空閑線程(僅適用于非核心線程)所能存活的最長時間 unit 存活時間單位,與keepAliveTime搭配使用 workQueue 存放任務的阻塞隊列 handler 線程池飽和策略

到此這篇關(guān)于Java并發(fā)編程之Executors類詳解的文章就介紹到這了,更多相關(guān)Java Executors類內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
好看的av在线不卡观看| 久久精品五月| 欧美亚洲国产精品久久| 吉吉日韩欧美| 国产99亚洲| 99视频精品全国免费| 久久国产亚洲精品| 午夜久久影院| 国产亚洲毛片在线| 91精品一区国产高清在线gif | 日韩欧美三区| 偷拍亚洲精品| 国产欧美一区二区色老头| 欧美xxxx性| 岛国av在线网站| www.九色在线| 激情久久婷婷| 老色鬼久久亚洲一区二区| 综合精品一区| 欧美日韩亚洲三区| 蜜桃视频在线观看一区| 青青草91久久久久久久久| 欧美国产专区| 91精品啪在线观看国产18 | 99热精品在线观看| 香蕉久久一区| 欧美激情亚洲| 欧美不卡高清一区二区三区| 欧美日韩在线观看视频小说| 亚洲欧美日韩专区| 日本亚洲视频| 狂野欧美性猛交xxxx| 成人久久一区| 蜜芽一区二区三区| 91九色综合| 欧美日韩一区二区三区不卡视频 | 欧美精品一区二区久久| 日韩av影院| 美国三级日本三级久久99 | 亚洲免费影院| 日韩免费福利视频| 日韩中文字幕1| 久久精品99国产精品| 欧洲一区二区三区精品| 男人操女人的视频在线观看欧美| 亚洲综合五月| 精品一区二区三区亚洲| 狠狠操综合网| 国产丝袜一区| 1024精品一区二区三区| 久久中文亚洲字幕| 天堂俺去俺来也www久久婷婷| 欧美精品91| 日韩天堂av| 欧美精品影院| 国产精品二区影院| 欧美日韩在线观看视频小说| 日韩高清国产一区在线| 亚洲1234区| 奇米狠狠一区二区三区| 日韩欧美综合| 日韩黄色av| 久久一区二区三区喷水| 国产精品成人3p一区二区三区| 激情婷婷综合| 精品久久国产一区| 蜜臀va亚洲va欧美va天堂 | 日本三级亚洲精品| 久久精品亚洲人成影院| 国产毛片精品| 久久国产精品久久久久久电车| 荡女精品导航| 亚州av日韩av| 欧美a级片一区| 国产高清久久| 久久亚洲人体| 亚洲人成网站在线在线观看| 精精国产xxxx视频在线播放| 日韩国产在线一| 日韩高清不卡在线| 丰满少妇一区| 亚洲日韩中文字幕一区| 精品国产精品久久一区免费式| 99视频精品| 亚洲视频国产| 都市激情国产精品| 欧美国产极品| av高清不卡| 欧美专区在线| 国产麻豆久久| 国产精品久久久久av蜜臀 | 国产99久久久国产精品成人免费| 久久精品国产网站| 国产乱码精品一区二区三区四区| 亚洲色诱最新| 国产主播一区| 久久久成人网| 中文在线а√在线8| 老色鬼久久亚洲一区二区| 99久久夜色精品国产亚洲狼| 麻豆91精品91久久久的内涵| 日韩在线观看一区二区三区| 天堂va蜜桃一区二区三区| 午夜久久影院| 婷婷综合网站| 久久久久午夜电影| 亚洲成人不卡| 群体交乱之放荡娇妻一区二区| 国产不卡精品在线| 美女尤物国产一区| 国产日产一区| 国产情侣一区| 国产日韩欧美高清免费| 国产免费久久| 国产伦理一区| 91精品国产一区二区在线观看| 免费人成在线不卡| 亚洲一区二区动漫| 日韩视频在线一区二区三区 | 中文字幕成人| 亚洲先锋成人| 日韩在线短视频| 98精品久久久久久久| 精品深夜福利视频| 国内精品美女在线观看| 精品一区二区三区免费看| 欧美激情精品| 久久精品五月| 欧美好骚综合网| 正在播放日韩精品| 亚洲成人一区在线观看| 香蕉久久99| 影院欧美亚洲| 欧美一级专区| 日韩精品高清不卡| 91欧美精品| 欧美黑人巨大videos精品| 精品精品99| 成人片免费看| 免费视频一区三区| 美女黄网久久| 日韩一区二区三区四区五区| 国产精品久久国产愉拍| 日韩毛片在线| 亚洲欧洲日本mm| 亚洲另类视频| 国产精品乱战久久久| 国产66精品| 激情欧美一区二区三区| 免费看精品久久片| 亚洲国产专区| 亚洲狼人精品一区二区三区| 国产麻豆一区二区三区| 亚洲精品福利电影| 在线午夜精品| 日韩avvvv在线播放| 精品国产99| 999久久久国产精品| 日韩在线卡一卡二| 国产美女亚洲精品7777| 日韩高清中文字幕一区二区| 亚洲免费激情| 国产欧美日韩亚洲一区二区三区| 久久久久久一区二区| 夜夜嗨一区二区| 国产精品一国产精品k频道56| 桃色av一区二区| 亚洲永久精品唐人导航网址| 久久中文欧美| 欧美日韩视频一区二区三区| 日韩福利视频一区| 精品免费av在线| 日本成人在线视频网站| 综合日韩av| 中文字幕成人| 日韩久久精品网| 国产日韩综合| 久久精品资源| 日韩中文字幕av电影| 国内自拍视频一区二区三区| 99在线观看免费视频精品观看| 69堂精品视频在线播放| 日韩精品欧美激情一区二区| 日本午夜精品一区二区三区电影| caoporn视频在线| 丝袜美腿亚洲一区二区图片| 国产一区一一区高清不卡| 首页欧美精品中文字幕| 黄色欧美在线| 日本vs亚洲vs韩国一区三区二区| 电影亚洲精品噜噜在线观看| 国产欧美亚洲一区| 亚洲一区欧美激情| 91麻豆国产自产在线观看亚洲| 亚洲精品欧美| 成人日韩在线| 欧美精品中文| 先锋影音国产一区| 日韩一区二区三区免费| 麻豆国产欧美日韩综合精品二区|