閱讀735 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java並發麵試題(一)基礎

多線程

  1. java中有幾種方法可以實現一個線程?
  2. 如何停止一個正在運行的線程?
  3. notify()和notifyAll()有什麼區別?
  4. sleep()和 wait()有什麼區別?
  5. 什麼是Daemon線程?它有什麼意義?
  6. java如何實現多線程之間的通訊和協作?

  1. 什麼是可重入鎖(ReentrantLock)?
  2. 當一個線程進入某個對象的一個synchronized的實例方法後,其它線程是否可進入此對象的其它方法?
  3. synchronized和java.util.concurrent.locks.Lock的異同?
  4. 樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?

並發框架

  1. SynchronizedMap和ConcurrentHashMap有什麼區別?
  2. CopyOnWriteArrayList可以用於什麼應用場景?

線程安全

  1. 什麼叫線程安全?servlet是線程安全嗎?
  2. 同步有幾種實現方法?
  3. volatile有什麼用?能否用一句話說明下volatile的應用場景?
  4. 請說明下java的內存模型及其工作流程。
  5. 為什麼代碼會重排序?


文章轉自 並發編程網-ifeve.com

最後更新:2017-05-22 20:04:34

  上一篇:go  JAVA語言規範-線程和鎖章節之同步、等待和通知
  下一篇:go  深入理解G1垃圾收集器