精選30道Java多執行緒面試題

2021-09-20 07:39:42 字數 897 閱讀 8076

1、執行緒和程序的區別

2、實現執行緒有哪幾種方式?

3、執行緒有哪幾種狀態?它們之間如何流轉的?

4、執行緒中的start()和run()方法有什麼區別?

5、怎麼終止乙個執行緒?如何優雅地終止執行緒?

6、threadlocal在多執行緒中扮演什麼角色?

7、執行緒中的wait()和sleep()方法有什麼區別?

8、多執行緒同步有哪幾種方法?

9、什麼是死鎖?如何避免死鎖?

10、多執行緒之間如何進行通訊?

11、執行緒怎樣返回結果?如何獲取?

12、說說violatile關鍵字有什麼用,和synchronized有什麼區別?

13、假如新建t1、t2、t3三個執行緒,如何保證它們按順序執行?

14、怎麼控制同一時間只有3個執行緒執行?

15、為什麼要使用執行緒池?

16、說一說常用的幾種執行緒池並講講其中的工作原理。

17、執行緒池啟動執行緒submit()和execute()有什麼不同?

18、說說多執行緒併發控制中的倒計時器、迴圈柵欄是什麼,有什麼應用場景?

19、什麼是活鎖、飢餓、無鎖、死鎖?

20、什麼是原子性、可見性、有序性?

21、什麼是守護執行緒?有什麼用?

22、怎麼中斷乙個執行緒?如何保證中斷業務不影響?

23、yield()方法有什麼用?

24、什麼是重入鎖,和synchronized鎖有什麼區別?

25、synchronized有哪幾種用法?

26、fork/join框架是幹什麼的?

27、如何給執行緒傳遞引數?

28、說說執行緒安全的和不安全的集合。

29、什麼是cas演算法?在多執行緒中有哪些應用。

30、你遇到過哪些多執行緒的問題?都是如何解決的?

java多執行緒面試題

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

Java多執行緒面試題

執行緒池的原理,為什麼要建立執行緒池?將預先建立好的執行緒放入執行緒池當中。當有執行緒請求時,則從執行緒池中呼叫執行緒,呼叫結束之後歸還執行緒。當出現需要建立大量執行緒的情況時,反覆的建立執行緒會造成大量的效能損耗。使用執行緒池能降低損耗,提高響應的速度,方便管理執行緒。執行緒的生命週期,什麼時候會...

java多執行緒面試題1

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