日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线程池原理——高频面试题

發(fā)布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线程池原理——高频面试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.高頻面試題:

1.為什么使用線程池,優(yōu)勢是什么;

2.線程池如何使用;

3.線程池的幾個重要的參數(shù)介紹;

4.線程池底層工作原理;

5.線程池用過嗎?生產(chǎn)上你如何設置合理參數(shù);

2.線程的理解

?3.線程池的意義

線程池稀缺資源,它的創(chuàng)建和銷毀是比較重且好資源的操作。而java線程依賴于內(nèi)核線程,創(chuàng)建線程需要進行操作系統(tǒng)狀態(tài)切換,為避免資源過度消耗需要設法重用線程執(zhí)行多個任務。線程池就是一個線程緩存,負責對線程進行統(tǒng)一分配、調(diào)優(yōu)與監(jiān)控。

線程池優(yōu)勢:

(1)重用存在的線程,減少線程創(chuàng)建,消亡的開銷,提高性能;

(2)提高響應速度。當任務到達時,任務可以不需要等到線程創(chuàng)建就能立即執(zhí)行

(3)提高線程的可管理性。線程是稀缺資源,如果無限制的創(chuàng)建,不僅會消耗系統(tǒng)資源,還會降低系統(tǒng)的穩(wěn)定性,使用線程池可以進行統(tǒng)一的分配,調(diào)優(yōu)和監(jiān)控

4.線程池是如何實現(xiàn)的-Executor

?創(chuàng)建線程的5種方式

一般不用executor創(chuàng)建,而是通過如下方式創(chuàng)建

拒絕策略:

1.AbortPolicy—拋棄任務并拋出異常(默認的拒絕策略)

2.DiscardPolicy——既不執(zhí)行任務,也不拋出異常

3.DiscardOldestPolicy——丟掉隊列里面最前面的任務

4.CallerRunsPolicy——調(diào)用者回退機制策略

?5.線程池的5種狀態(tài)

Running:能接收新任務,以及處理已經(jīng)添加的任務

Shutdown:不能接收新任務,可以處理已經(jīng)添加的任務

Stop:不接收新任務,不處理已經(jīng)添加的任務,并且中斷已經(jīng)處理中的任務

Tidying:所有的任務已經(jīng)終止,ctl記錄的任務數(shù)量為“0”(ctl負責記錄線程池的運行狀態(tài)與活動線程數(shù))

Terminated:線程池徹底終止,則線程池轉(zhuǎn)化為terminated狀態(tài)。

?高三位記錄線程池狀態(tài),低29位記錄活動線程數(shù)

?線程池中的線程的復用代碼

6.線程池數(shù)量如何設置

1.線程根據(jù)執(zhí)行的任務內(nèi)容主要分為CPU密集型和IO密集型,很多有經(jīng)驗的說CPU密集型:線程數(shù)量=CPU核數(shù)+1,IO密集型線程數(shù)量=CPU核數(shù)*2;

但是我們知道線程執(zhí)行有執(zhí)行時間ST和等待時間WT,應該為(ST+WT)/ST * CPU核數(shù)

比如一個線程執(zhí)行時間ST=0.5s,等待時間WT=1.5s,該機器的核數(shù)是8,那么該線程池最大的線程數(shù)=(1.5+0.5)/0.5*8=32;

總結(jié)

以上是生活随笔為你收集整理的线程池原理——高频面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。