「每天一道面試題」synchronized關鍵字的底層實現原理是什麼?

「每天一道面試題」synchronized關鍵字的底層實現原理是什麼?

通過javap工具查看生成的class文件,會發現:

  • 同步代碼塊使用了monitorenter和monitorexit指令實現同步;

  • 同步方法中依靠方法修飾符上的ACC_SYNCHRONIZED實現同步。

無論哪種實現方式,其過程都是互斥的,同一時刻只有一個線程能夠執行同步代碼,其它失敗的線程會被阻塞,並放入到同步隊列中,進入BLOCKED狀態。


分享到:


相關文章: