手撕面試官系列(七):面試必備之常問併發編程高級面試專題

併發編程高級面試面試題


(面試題+答案領取方式見我的主頁)面試

Synchronized 相關問題

  1. Synchronized 用過嗎 , 其原理是什麼 ?
  2. 你剛纔提到獲取對象的鎖,這 個「 鎖 」究竟是什麼?如何肯定對象的鎖 ?
  3. 什麼是可重入性,爲何說 Synchronized 是可重入鎖?
  4. JVM 對 Java 的原生鎖作了哪些優化?
  5. 爲何說 Synchronized 是非公平鎖?
  6. 什麼是鎖消除和鎖粗化 ?
  7. 爲何說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原又是什麼?什麼是 CAS,它有什麼特性?
  8. 樂觀鎖必定就是好的嗎?

可重入鎖 ReentrantLock 及其餘顯式鎖相關問題

  1. 跟 Synchronized 相 比 , 可重入鎖 ReentrantLock 其實現原理有什麼不一樣?
  2. 那麼請談談 AQS 框架是怎麼回事兒?
  3. 請儘量詳盡地對比下 Synchronized 和 ReentrantLock0 的異同。
  4. ReentrantLock 是如何實現可重入性的?
  5. 除了 ReetrantLock,你還接觸過 JUC 中的哪些併發工具?
  6. 請談談 ReadWriteLock 和 StampedLock。
  7. 如何讓 Java 的線程彼此同步?你瞭解過哪些同步器?請分別介紹下 。
  8. CyclicBarrier 和 CountDownLatch 看起來很類似,請對比下呢?

Java 線程池相關問題

  1. Java 中的線程池是如何實現的?
  2. 建立線程池的幾個核心構造參數?
  3. 線程池中的線程是怎麼建立的?是一開始就隨着線程池的啓動建立好的嗎?
  4. 既然提到能夠經過配置不一樣參數建立出不一樣的線程池,那麼Java 中默認實現好的線程池又有哪些呢?請比較它們的異同。
  5. 如何在 Java 線程池中提交線程?

Java內存模型相關問題

  1. 什麼是 Java 的內存模型, Java 中各個線程是怎麼彼此看到對方的變量的?
  2. 請談談 volatile 有什麼特色,爲何它能保證變量對全部線程的可見性?
  3. 既然 volatile 可以保證線程間的變量可見性,是否是就意味着基於 volatile 變量的運算就是併發安全的?
  4. 請對比下 volatile 對比 Synchronized 的異同。
  5. 請談談 ThreadLocal 是怎麼解決併發安全的?
  6. 不少人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 須要注意些什麼?
相關文章
相關標籤/搜索