手撕面試官系列(七):面試必備之常問併發編程高級面試專題
併發編程高級面試面試題
(面試題+答案領取方式見我的主頁)面試
Synchronized 相關問題
- Synchronized 用過嗎 , 其原理是什麼 ?
- 你剛纔提到獲取對象的鎖,這 個「 鎖 」究竟是什麼?如何肯定對象的鎖 ?
- 什麼是可重入性,爲何說 Synchronized 是可重入鎖?
- JVM 對 Java 的原生鎖作了哪些優化?
- 爲何說 Synchronized 是非公平鎖?
- 什麼是鎖消除和鎖粗化 ?
- 爲何說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原又是什麼?什麼是 CAS,它有什麼特性?
- 樂觀鎖必定就是好的嗎?
可重入鎖 ReentrantLock 及其餘顯式鎖相關問題
- 跟 Synchronized 相 比 , 可重入鎖 ReentrantLock 其實現原理有什麼不一樣?
- 那麼請談談 AQS 框架是怎麼回事兒?
- 請儘量詳盡地對比下 Synchronized 和 ReentrantLock0 的異同。
- ReentrantLock 是如何實現可重入性的?
- 除了 ReetrantLock,你還接觸過 JUC 中的哪些併發工具?
- 請談談 ReadWriteLock 和 StampedLock。
- 如何讓 Java 的線程彼此同步?你瞭解過哪些同步器?請分別介紹下 。
- CyclicBarrier 和 CountDownLatch 看起來很類似,請對比下呢?
Java 線程池相關問題
- Java 中的線程池是如何實現的?
- 建立線程池的幾個核心構造參數?
- 線程池中的線程是怎麼建立的?是一開始就隨着線程池的啓動建立好的嗎?
- 既然提到能夠經過配置不一樣參數建立出不一樣的線程池,那麼Java 中默認實現好的線程池又有哪些呢?請比較它們的異同。
- 如何在 Java 線程池中提交線程?
Java內存模型相關問題
- 什麼是 Java 的內存模型, Java 中各個線程是怎麼彼此看到對方的變量的?
- 請談談 volatile 有什麼特色,爲何它能保證變量對全部線程的可見性?
- 既然 volatile 可以保證線程間的變量可見性,是否是就意味着基於 volatile 變量的運算就是併發安全的?
- 請對比下 volatile 對比 Synchronized 的異同。
- 請談談 ThreadLocal 是怎麼解決併發安全的?
- 不少人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 須要注意些什麼?
歡迎關注本站公眾號,獲取更多信息