導讀 關于線程池的復用原理,線程池原理這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!1、java線程池的
關于線程池的復用原理,線程池原理這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、java線程池的實現(xiàn)原理很簡單,說白了就是一個線程集合workerSet和一個阻塞隊列workQueue。
2、當用戶向線程池提交一個任務(也就是線程)時,線程池會先將任務放入workQueue中。
3、workerSet中的線程會不斷的從workQueue中獲取線程然后執(zhí)行。
4、當workQueue中沒有任務的時候,worker就會阻塞,直到隊列中有任務了就取出來繼續(xù)執(zhí)行。
5、2、線程池的幾個主要參數(shù)的作用corePoolSize: 規(guī)定線程池有幾個線程(worker)在運行。
6、maximumPoolSize: 當workQueue滿了,不能添加任務的時候,這個參數(shù)才會生效。
7、規(guī)定線程池最多只能有多少個線程(worker)在執(zhí)行。
8、keepAliveTime: 超出corePoolSize大小的那些線程的生存時間,這些線程如果長時間沒有執(zhí)行任務并且超過了keepAliveTime設定的時間,就會消亡。
9、unit: 生存時間對于的單位workQueue: 存放任務的隊列threadFactory: 創(chuàng)建線程的工廠handler: 當workQueue已經(jīng)滿了,并且線程池線程數(shù)已經(jīng)達到maximumPoolSize,將執(zhí)行拒絕策略。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,如有侵權請聯(lián)系刪除!