「面試題」Java多線程精華問題全整理,高級程序員必備

為大家整理了Java多線程部分的面試精華問題共60道,希望大家依次進行知識篩選

1.多線程有什麼用?

2.線程和進程的區別是什麼?

3.Java實現線程有哪幾種方式?

4.啟動線程方法start()和run()有什麼區別?

5.怎麼終止一個線程?如何優雅地終止線程?

6.一個線程的生命週期有哪幾種狀態?它們之間如何流轉的?

7.線程中的wait()和sleep()方法有什麼區別?

8.多線程同步有哪幾種方法?

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

10.多線程之間如何進行通信?

11.線程怎樣拿到返回結果?

12.violatile關鍵字的作用?

13.新建T1、T2、T3三個線程,如何保證它們按順序執行?

14.怎麼控制同一時間只有3個線程運行?

15.為什麼要使用線程池?

16.常用的幾種線程池並講講其中的工作原理。

17.線程池啟動線程submit()和execute()方法有什麼不同?

18.CyclicBarrier和CountDownLatch的區別?

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

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

21.什麼是守護線程?有什麼用?

22.怎麼中斷一個線程?如何保證中斷業務不影響?

23.一個線程運行時發生異常會怎樣?

24.什麼是重入鎖?

25.Synchronized有哪幾種用法?

26.Fork/Join框架是幹什麼的?

27. 線程數過多會造成什麼異常?

28.說說線程安全的和不安全的集合。

29.什麼是CAS算法?在多線程中有哪些應用。

30.怎麼檢測一個線程是否擁有鎖?

31.JDK中排查多線程問題用什麼命令?

32.線程同步需要注意什麼?

33.線程wait()方法使用有什麼前提?

34.Fork/Join框架使用有哪些要注意的地方?

35.線程之間如何傳遞數據?

36.保證"可見性"有哪幾種方式?

37. 說幾個常用的Lock接口實現鎖。

38.ThreadLocal是什麼?有什麼應用場景?

39.ReadWriteLock有什麼用?

40.FutureTask是什麼?

41.怎麼喚醒一個阻塞的線程?

42.不可變對象對多線程有什麼幫助?

43.多線程上下文切換是什麼意思?

44.Java中用到了什麼線程調度算法?

45.Thread.sleep(0)的作用是什麼?

46.Java內存模型是什麼,哪些區域是線程共享的,哪些是不共享的

47.什麼是樂觀鎖和悲觀鎖?

48.Hashtable的size()方法為什麼要做同步?

49.同步方法和同步塊,哪種更好?

50.什麼是自旋鎖?

51.Runnable和Thread用哪個好?

52.Java中notify和notifyAll有什麼區別?

53.為什麼wait/notify/notifyAll這些方法不在thread類裡面?

54.為什麼wait和notify方法要在同步塊中調用?

55.為什麼你應該在循環中檢查等待條件?

56.Java中堆和棧有什麼不同?

57. 你如何在Java中獲取線程堆棧?

58.如何創建線程安全的單例模式?

59.什麼是阻塞式方法?

60.提交任務時線程池隊列已滿會時發會生什麼?


「面試題」Java多線程精華問題全整理,高級程序員必備


分享到:


相關文章: