文章插圖
1、java線程池的實現原理很簡單,說白了就是一個線程集合workerSet和一個阻塞隊列workQueue 。當用戶向線程池提交一個任務(也就是線程)時,線程池會先將任務放入workQueue中 。workerSet中的線程會不斷的從workQueue中獲取線程然后執行 。當workQueue中沒有任務的時候,worker就會阻塞,直到隊列中有任務了就取出來繼續執行 。
2、線程池的幾個主要參數的作用
corePoolSize: 規定線程池有幾個線程(worker)在運行 。
maximumPoolSize: 當workQueue滿了,不能添加任務的時候,這個參數才會生效 。規定線程池最多只能有多少個線程(worker)在執行 。
keepAliveTime: 超出corePoolSize大小的那些線程的生存時間,這些線程如果長時間沒有執行任務并且超過了keepAliveTime設定的時間 , 就會消亡 。
unit: 生存時間對于的單位
workQueue: 存放任務的隊列
threadFactory: 創建線程的工廠
【線程池的實現原理】handler: 當workQueue已經滿了,并且線程池線程數已經達到maximumPoolSize , 將執行拒絕策略 。
- 表現游子思鄉情結的四字詞語
- 陸游的秋思首聯寫秋有什么作用
- 溶液膠體濁液三種分散系的區別
- 國標DN200的法蘭外徑是多少
- 含星星的王者名字八個字
- 女生很萌很搞笑的晚安說說
- 近幾年的考研國家線是多少
- 關于相親的唯美句子
- python與php的區別
- 什么是移動IP
