做微商網(wǎng)站制作公司注冊
暑期實習面試阿里Java后端崗位的一面的面經(jīng)。
主要拷打了項目+Java 集合+Java并發(fā)+網(wǎng)絡+mysql,一場面試大概問了 20 個題目,問的還是比較基礎,不算太難。
問題記錄
簡歷上有兩個項目,選一個你比較熟悉的介紹
(略)
項目用到了哪個線程實現(xiàn)類?
用了ScheduledThreadPool這個線程實現(xiàn)類
為什么要使用這個線程類?
這個實現(xiàn)類可以設置定期的執(zhí)行任務,它支持定時或周期性執(zhí)行任務,比如每隔 10 秒鐘執(zhí)行一次任務,我通過這個實現(xiàn)類設置定期執(zhí)行任務的策略。
你還了解別的線程實現(xiàn)類嗎?
除了這個之外,還有就是newSingleThreadExecuter,別的就不太熟悉了。
補充:
除了 ScheduledThreadPool 線程池之外,還有 4 種常見的線程池如下:
-
FixedThreadPool:它的核心線程數(shù)和最大線程數(shù)是一樣的,所以可以把它看作是固定線程數(shù)的線程池,它的特點是線程池中的線程數(shù)除了初始階段需要從 0 開始增加外,之后的線程數(shù)量就是固定的,就算任務數(shù)超過線程數(shù),線程池也不會再創(chuàng)建更多的線程來處理任務,而是會把超出線程處理能力的任務放到任務隊列中進行等待。而且就算任務隊列滿了,到了本該繼續(xù)增加線程數(shù)的時候,由于它的最大線程數(shù)和核心線程數(shù)是一樣的,所以也無法再增加新的線程了。
-
CachedThreadPool:可以稱作可緩存線程池,它的特點在于線程數(shù)是幾乎可以無限增加的(實際最大可以達