亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

對Java并發編程的幾點思考

2019-11-15 00:53:11
字體:
來源:轉載
供稿:網友
java并發編程的幾點思考1. Threads 和 Runnables

  所有的現代操作系統都通過進程和線程來支持并發。進程是通常彼此獨立運行的程序的實例,比如,如果你啟動了一個Java程序,操作系統產生一個新的進程,與其他程序一起并行執行。在這些進程的內部,我們使用線程并發執行代碼,因此,我們可以最大限度的利用CPU可用的核心(core)。Java從JDK1.0開始執行線程。在開始一個新的線程之前,你必須指定由這個線程執行的代碼,通常稱為task。這可以通過實現Runnable:一個定義了一個無返回值無參數的run()方法的函數接口,如下面的代碼所示:

Runnable task = () -> {     //JDK 1.8中的Lambda 表達式    String threadName = Thread.currentThread().getName();    System.out.

2. java 線程池的使用

  上面繼承Thread類和實現Runnable接口,可以實現多線程。但是如果并發的線程數量很多,并且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁創建線程就會大大降低系統的效率,因為頻繁創建線程和銷毀線程需要時間。那么有沒有一種辦法使得線程可以復用,就是執行完一個任務,并不被銷毀,而是可以繼續執行其他的任務?在Java中可以通過線程池來達到這樣的效果。今天我們就來詳細講解一下Java的線程池,首先我們從最核心的ThreadPoolExecutor類中的方法講起,然后再講述它的實現原理,接著給出了它的使用示例,最后討論了一下如何合理配置線程池的大小。

  Java中的ThreadPoolExecutor類,java..uitl.concurrent.ThreadPoolExecutor類是線程池中最核心的一個類,因此如果要透徹地了解Java中的線程池,必須先了解這個類。下面我們來看一下ThreadPoolExecutor類的具體實現源碼

public class ThreadPoolExecutor extends AbstractExecutorService {        public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,            BlockingQueue<Runnable> workQueue);     public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,            BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory);     public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,            BlockingQueue<Runnable> workQueue,RejectedExecutionHandler handler);     public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,        BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler);   }

從上面的代碼可以得知,ThreadPoolExecutor繼承了AbstractExecutorService類,并提供了四個構造器,事實上,通過觀察每個構造器的源碼具體實現,發現前面三個構造器都是調用的第四個構造器進行的初始化工作。下面解釋下一下構造器中各個參數的含義: 

  coorPoolSize:核心池的大小,這個參數跟后面講述的線程池的實現原理有非常大的關系。在創建了線程池后,默認情況下,線程池中并沒有任何線程,而是等待有任務到來才創建線程去執行任務,除非調用了prestartAllCoreThreads()或者prestartCoreThread()方法,從這2個方法的名字就可以看出,是預創建線程的意思,即在沒有任務到來之前就創建corePoolSize個線程或者一個線程。默認情況下,在創建了線程池后,線程池中的線程數為0,當有任務來之后,就會創建一個線程去執行任務,當線程池中的線程數目達到corePoolSize后,就會把到達的任務放到緩存隊列當中;maximumPoolSize:線程池最大線程數,這個參數也是一個非常重要的參數,它表示在線程池中最多能創建多少個線程;keepAliveTime:表示線程沒有任務執行時最多保持多久時間會終止。默認情況下,只有當線程池中的線程數大于corePoolSize時,keepAliveTime才會起作用,直到線程池中的線程數不大于corePoolSize,即當線程池中的線程數大于corePoolSize時,如果一個線程空閑的時間達到keepAliveTime,則會終止,直到線程池中的線程數不超過corePoolSize。但是如果調用了allowCoreThreadTimeOut(boolean)方法,在線程池中的線程數不大于corePoolSize時,keepAliveTime參數也會起作用,直到線程池中的線程數為0;unit參數:keepAliveTime的時間單位,有7種取值,在TimeUnit類中有7種靜態屬性:

TimeUnit.DAYS;               //天TimeUnit.HOURS;             //小時TimeUnit.MINUTES;           //分鐘TimeUnit.SECONDS;           //秒TimeUnit.MILLISECONDS;      //毫秒TimeUnit.MICROSECONDS;      //微妙TimeUnit.NANOSECONDS;       //納秒

workQueue:一個阻塞隊列,用來存儲等待執行的任務,這個參數的選擇也很重要,會對線程池的運行過程產生重大影響,一般來說,這里的阻塞隊列有以下幾種選擇:

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久夜色精品国产亚洲aⅴ| 亚洲va久久久噜噜噜久久天堂| 一区二区欧美激情| 精品国产一区久久久| 97**国产露脸精品国产| 91超碰caoporn97人人| 国产精品久久av| 欧美日韩国产麻豆| 亚洲成色777777女色窝| 美女av一区二区三区| 亚洲精品丝袜日韩| 欧美国产日韩在线| 亚洲午夜未满十八勿入免费观看全集| 久久香蕉国产线看观看av| 亚洲欧美日韩在线高清直播| 亚洲天堂视频在线观看| 琪琪亚洲精品午夜在线| 国产精品视频男人的天堂| 久久成人一区二区| 欧美激情精品久久久久久免费印度| 久久福利视频网| 欧美做爰性生交视频| 国产在线视频不卡| 国产亚洲一区二区在线| 国产热re99久久6国产精品| 亚洲自拍偷拍区| 国模精品视频一区二区| 91精品久久久久久久久久另类| 亚洲日本欧美中文幕| 北条麻妃一区二区在线观看| 日韩美女视频免费在线观看| 色噜噜亚洲精品中文字幕| 欧美裸体xxxx极品少妇软件| 欧美视频免费在线观看| 色老头一区二区三区| 日韩中文字幕在线看| 亚洲xxxxx| 久久99精品久久久久久青青91| 黄网动漫久久久| 欧美成人一区二区三区电影| www.日韩系列| 91久久精品视频| 国产精品福利在线| 国产va免费精品高清在线观看| 亚洲高清av在线| 亚洲美女av在线播放| 欧美—级高清免费播放| 91色中文字幕| 精品中文字幕视频| 久久五月情影视| 国内精品久久影院| 国产日韩在线亚洲字幕中文| 国产午夜精品理论片a级探花| 久久久国产一区二区| 欧美美女18p| 日韩精品在线观看网站| 久久韩剧网电视剧| 美女久久久久久久| 亚洲精品第一国产综合精品| 亚洲最大福利视频网| 色99之美女主播在线视频| 亚洲xxx大片| 精品亚洲男同gayvideo网站| 国产精品一区av| 亚洲小视频在线观看| 亚洲午夜av久久乱码| 久久久久亚洲精品国产| 亚洲成人激情视频| 午夜精品久久久99热福利| 午夜精品久久久久久久久久久久| 色偷偷88888欧美精品久久久| 国产欧美日韩专区发布| 91精品美女在线| 亚洲国产小视频在线观看| 国产亚洲视频中文字幕视频| 国产一区二区三区毛片| 欧美成人免费大片| 国产日韩在线亚洲字幕中文| 成人h视频在线观看播放| 欧美电影电视剧在线观看| 神马国产精品影院av| 国产精品91在线| 日韩国产中文字幕| 欧美电影《睫毛膏》| 久久久久久国产精品三级玉女聊斋| 欧美国产极速在线| 日韩美女视频在线观看| 在线电影欧美日韩一区二区私密| 高清日韩电视剧大全免费播放在线观看| 97精品欧美一区二区三区| 久久久久国产视频| www.欧美三级电影.com| 欧美交受高潮1| 伊人伊成久久人综合网小说| 久久久亚洲网站| 欧美午夜精品在线| 97国产精品免费视频| 成人激情视频在线| 一区二区三区久久精品| 97在线视频精品| 欧美性生交xxxxx久久久| xxxxx成人.com| 国产成人福利夜色影视| 美女少妇精品视频| 久久人人97超碰精品888| 久久精品人人做人人爽| 午夜剧场成人观在线视频免费观看| 久久精品亚洲热| 色综合视频网站| 成人激情春色网| 日韩最新免费不卡| 91最新在线免费观看| 深夜精品寂寞黄网站在线观看| 亚洲最大福利视频| 91精品国产自产在线观看永久| 欧美激情一区二区三区在线视频观看| 日韩在线高清视频| 欧美福利在线观看| 国模视频一区二区三区| 国产一区二区三区在线| 欧美日韩国产精品一区| 亚洲人成电影网站色xx| 欧美日韩aaaa| 中文字幕国产精品久久| 91a在线视频| 青草青草久热精品视频在线网站| 亚洲精品乱码久久久久久金桔影视| 欧美肥臀大乳一区二区免费视频| 欧美激情亚洲精品| 97国产成人精品视频| 欧洲成人在线视频| 亚洲国产91色在线| 亚洲国产精品va在线观看黑人| 久久综合免费视频| 亚洲精品国产精品久久清纯直播| 欧美在线视频网| 日韩大片免费观看视频播放| 亚洲免费电影在线观看| 国产欧美日韩亚洲精品| 欧美午夜精品伦理| 亚洲黄色在线观看| 中文字幕在线视频日韩| 欧美成人免费大片| 国产精品美女www| 国产精欧美一区二区三区| 精品久久久久久中文字幕大豆网| 国产91九色视频| 成人精品久久一区二区三区| 国产精品吊钟奶在线| 亚洲午夜精品久久久久久久久久久久| 裸体女人亚洲精品一区| 狠狠久久五月精品中文字幕| 久久久免费精品| 福利视频第一区| 亚洲一区二区三区视频播放| 精品久久香蕉国产线看观看亚洲| 日韩电影免费观看在线观看| 久久91亚洲人成电影网站| www欧美xxxx| 亚洲xxxx妇黄裸体| 亚洲电影免费观看高清完整版在线| 亚洲国产精品人人爽夜夜爽| 久久国产精品久久久久久| 欧美国产日产韩国视频|