本文整理了常見的Java併發面試題,希望對大家面試有所幫助,歡迎大家互相交流。
多線程
- java中有幾種方法可以實現一個線程?
- 如何停止一個正在運行的線程?
- notify()和notifyAll()有什麼區別?
- sleep()和 wait()有什麼區別?
- 什麼是Daemon線程?它有什麼意義?
- java如何實現多線程之間的通訊和協作?
鎖
- 什麼是可重入鎖(ReentrantLock)?
- 當一個線程進入某個對象的一個synchronized的實例方法後,其它線程是否可進入此對象的其它方法?
- synchronized和java.util.concurrent.locks.Lock的異同?
- 樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?
併發框架
- SynchronizedMap和ConcurrentHashMap有什麼區別?
- CopyOnWriteArrayList可以用於什麼應用場景?
線程安全
- 什麼叫線程安全?servlet是線程安全嗎?
- 同步有幾種實現方法?
- volatile有什麼用?能否用一句話說明下volatile的應用場景?
- 請說明下java的內存模型及其工作流程。
- 爲什麼代碼會重排序?