天天看點

java并發面試題(一)基礎

java中有幾種方法可以實作一個線程?

如何停止一個正在運作的線程?

notify()和notifyall()有什麼差別?

sleep()和 wait()有什麼差別?

什麼是daemon線程?它有什麼意義?

java如何實作多線程之間的通訊和協作?

什麼是可重入鎖(reentrantlock)?

當一個線程進入某個對象的一個synchronized的執行個體方法後,其它線程是否可進入此對象的其它方法?

synchronized和java.util.concurrent.locks.lock的異同?

樂觀鎖和悲觀鎖的了解及如何實作,有哪些實作方式?

synchronizedmap和concurrenthashmap有什麼差別?

copyonwritearraylist可以用于什麼應用場景?

什麼叫線程安全?servlet是線程安全嗎?

同步有幾種實作方法?

volatile有什麼用?能否用一句話說明下volatile的應用場景?

請說明下java的記憶體模型及其工作流程。

為什麼代碼會重排序?