Java多執行緒面試題

2021-09-19 16:39:48 字數 642 閱讀 1066

執行緒池的原理,為什麼要建立執行緒池?

將預先建立好的執行緒放入執行緒池當中。當有執行緒請求時,則從執行緒池中呼叫執行緒,呼叫結束之後歸還執行緒。

當出現需要建立大量執行緒的情況時,反覆的建立執行緒會造成大量的效能損耗。使用執行緒池能降低損耗,提高響應的速度,方便管理執行緒。

執行緒的生命週期,什麼時候會出現僵死程序?

執行緒的生命週期分為五個部分。新建、就緒、執行、阻塞、死亡。

什麼是執行緒安全,如何實現執行緒安全?

例如當多個執行緒共享變數時,保證變數的一致性就是執行緒安全。

可以通過三種方式來實現執行緒安全。synchronized、lock、cas。

建立執行緒池有哪幾個核心引數?如何合理配置執行緒池的大小?

核心執行緒數,最大執行緒數、存活時間、允許釋放核心執行緒…等等

集合實際情況具體分析。

synchronized、volatile區別、synchronized鎖粒度、模擬死鎖場景、原子性和可見性。

synchronized保證執行緒的原子性,volatile保證執行緒的可見性。

原子性是指一段時間內只有乙個執行緒可以修改被synchronized修飾的內容。

可見性是指某個執行緒修改了共享變數之後,其他的執行緒可見的。例如通過volatile修飾的變數,修改之後直接寫入記憶體。並且其他執行緒的快取失效。

java多執行緒面試題

有三個執行緒id分別是a b c,請有多線程式設計實現,在螢幕上迴圈列印10次abcabc 由於執行緒執行的不確定性,要保證這樣有序的輸出,必須控制好多執行緒的同步。執行緒同步有兩種基本方法 1 synchronized 2 wait,notify,notifyall 現在分別採用這兩種方法來解答這...

java多執行緒面試題1

假設如下 中,若t1執行緒在t2執行緒啟動之前已經完成啟動。的輸出是 public static void main stringargs throws exception catch interruptedexception e t1.start thread.sleep 1000 we assu...

多執行緒Java面試題總結

57 thread類的sleep 方法和物件的wait 方法都可以讓執行緒暫停執行,它們有什麼區別?答 sleep 方法 休眠 是執行緒類 thread 的靜態方法,呼叫此方法會讓當前執行緒暫停執行指定的時間,將執行機會 cpu 讓給其他執行緒,但是物件的鎖依然保持,因此休眠時 間結束後會自動恢復 ...