⑴ java 線程池的問題
你的理解沒毛病。
核心線程數(corePoolSize):核心線程會一直存活,即使沒有任務需要處理。當線程數小於核心線程數時,即使現有的線程空閑,線程池也會優先創建新線程來處理任務,而不是直接交給現有的線程處理。
最大線程數(maxPoolSize):當線程數大於或等於核心線程,且任務隊列已滿時,線程池會創建新的線程,直到線程數量達到maxPoolSize。如果線程數已等於maxPoolSize,且任務隊列已滿,則已超出線程池的處理能力,線程池會拒絕處理任務而拋出異常。
線程池按以下行為執行任務
當線程數小於核心線程數時,創建線程。
當線程數大於等於核心線程數,且任務隊列未滿時,將任務放入任務隊列。
當線程數大於等於核心線程數,且任務隊列已滿,1、若線程數小於最大線程數,創建線程;2、若線程數等於最大線程數,拋出異常,拒絕任務
⑵ JAVA線程的題目 求大神解答
這不很簡單,把3個線程放入list中,按優先順序排好序,再一個一個拿出來,執行就好了。
⑶ java線程安全問題,筆試題幫忙給個思路。
1、兩個線程,一個線程執行開門操作,一個線程執行關門操作,並都進行同步處理(synchronized)
2、假如在開門期間,按下按鈕,剛開門線程wait, 並notify關門線程開始run, 同理在關門期間,如果
按下按鈕,則關門線程wait, 並notify開門線程執行
3、有一個注意的地方,每當在開門或關門期間按下按鈕的時候,都要記錄開門或關門最後一刻的狀態值,以便在下次執行時,開門的從上一次關門最後一刻的狀態開始執行,而關門的則上一個開門的最後一刻狀態開始執行。個人見解。。。
⑷ Java線程問題
線程只能調用一次start方法,這將使線程進入待運行狀態,等待分配CPU時間片。在線程中的run方法執行完畢後,線程進入死亡狀態,該線程生命結束。一個線程對象只可以調用一次start方法。試圖在線程死亡後再次調用start方法將拋出IllegalThreadStateException異常。