Java中高級面試必問之多線程TOP50(含答案)


以下為大家整理了今年一線大廠面試被問頻率較高的多線程面試題,由於本人的見識局限性,所以可能不是很全面,也歡迎大家在后面留言補充,謝謝。

1、什么是線程?

2、什么是線程安全和線程不安全?

3、什么是自旋鎖?

4、什么是Java內存模型?

5、什么是CAS?

6、什么是樂觀鎖和悲觀鎖?

7、什么是AQS?

8、什么是原子操作?在Java Concurrency API中有哪些原子類(atomic classes)?

9、什么是Executors框架?

10、什么是阻塞隊列?如何使用阻塞隊列來實現生產者-消費者模型?

11、什么是Callable和Future?

12、什么是FutureTask?

13、什么是同步容器和並發容器的實現?

14、什么是多線程?優缺點?

15、什么是多線程的上下文切換?

16、ThreadLocal的設計理念與作用?

17、ThreadPool(線程池)用法與優勢?

18、Concurrent包里的其他東西:ArrayBlockingQueue、CountDownLatch等等。

19、synchronized和ReentrantLock的區別?

20、Semaphore有什么作用?

21、Java Concurrency  API中的Lock接口(Lock interface)是什么?對比同步它有什么優勢?

22、Hashtable的size()方法中明明只有一條語句”return count”,為什么還要做同步?

23、ConcurrentHashMap的並發度是什么?

24、ReentrantReadWriteLock讀寫鎖的使用?

25、CyclicBarrier和CountDownLatch的用法及區別?

26、LockSupport工具?

27、Condition接口及其實現原理?

28、Fork/Join框架的理解?

29、wait()和sleep()的區別?

30、線程的五個狀態(五種狀態,創建、就緒、運行、阻塞和死亡)?

31、start()方法和run()方法的區別?

32、Runnable接口和Callable接口的區別?

33、volatile關鍵字的作用?

34、Java中如何獲取到線程dump文件?

35、線程和進程有什么區別?

36、線程實現的方式有幾種(四種)?

37、高並發、任務執行時間短的業務怎樣使用線程池?並發不高、任務執行時間長的業務怎樣使用線程池?並發高、業務執行時間長的業務怎樣使用線程池?

38、如果你提交任務時,線程池隊列已滿,這時會發生什么?

39、鎖的等級:方法鎖、對象鎖、類鎖?

40、如果同步塊內的線程拋出異常會發生什么?

41、並發編程(concurrency)並行編程(parallellism)有什么區別?

42、如何保證多線程下 i++ 結果正確?

43、一個線程如果出現了運行時異常會怎么樣?

44、如何在兩個線程之間共享數據?

45、生產者消費者模型的作用是什么?

46、怎么喚醒一個阻塞的線程?

47、Java中用到的線程調度算法是什么

48、單例模式的線程安全性?

49、線程類的構造方法、靜態塊是被哪個線程調用的?

50、同步方法和同步塊,哪個是更好的選擇?


 

關注右側微信公眾號回復 "多線程" 獲取全部面試題整理及參考答案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM