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

如下爲你們整理了今年一線大廠面試被問頻率較高的多線程面試題,因爲本人的見識侷限性,因此可能不是很全面,也歡迎你們在後面留言補充,謝謝。面試

一、什麼是線程?

二、什麼是線程安全和線程不安全?

三、什麼是自旋鎖?

四、什麼是Java內存模型?

五、什麼是CAS?

六、什麼是樂觀鎖和悲觀鎖?

七、什麼是AQS?

八、什麼是原子操做?在Java Concurrency API中有哪些原子類(atomic classes)?

九、什麼是Executors框架?

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

十一、什麼是Callable和Future?

十二、什麼是FutureTask?

1三、什麼是同步容器和併發容器的實現?

1四、什麼是多線程?優缺點?

1五、什麼是多線程的上下文切換?

1六、ThreadLocal的設計理念與做用?

1七、ThreadPool(線程池)用法與優點?

1八、Concurrent包裏的其餘東西:ArrayBlockingQueue、CountDownLatch等等。

1九、synchronized和ReentrantLock的區別?

20、Semaphore有什麼做用?

2一、Java Concurrency  API中的Lock接口(Lock interface)是什麼?對比同步它有什麼優點?

2二、Hashtable的size()方法中明明只有一條語句」return count」,爲何還要作同步?

2三、ConcurrentHashMap的併發度是什麼?

2四、ReentrantReadWriteLock讀寫鎖的使用?

2五、CyclicBarrier和CountDownLatch的用法及區別?

2六、LockSupport工具?

2七、Condition接口及其實現原理?

2八、Fork/Join框架的理解?

2九、wait()和sleep()的區別?

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

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

3二、Runnable接口和Callable接口的區別?

3三、volatile關鍵字的做用?

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

3五、線程和進程有什麼區別?

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

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

3八、若是你提交任務時,線程池隊列已滿,這時會發生什麼?

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

40、若是同步塊內的線程拋出異常會發生什麼?

4一、併發編程(concurrency)並行編程(parallellism)有什麼區別?

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

4三、一個線程若是出現了運行時異常會怎麼樣?

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

4五、生產者消費者模型的做用是什麼?

4六、怎麼喚醒一個阻塞的線程?

4七、Java中用到的線程調度算法是什麼

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

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

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

 

關注如下公衆號回覆 "多線程" 獲取所有面試題整理及參考答案。算法

相關文章
相關標籤/搜索