通過javap工具查看生成的class文件,會發現:
同步代碼塊使用了monitorenter和monitorexit指令實現同步;
同步方法中依靠方法修飾符上的ACC_SYNCHRONIZED實現同步。
無論哪種實現方式,其過程都是互斥的,同一時刻只有一個線程能夠執行同步代碼,其它失敗的線程會被阻塞,並放入到同步隊列中,進入BLOCKED狀態。
閱讀更多 Java實戰技術 的文章
2018-04-16 21:46:43 Java實戰技術
通過javap工具查看生成的class文件,會發現:
同步代碼塊使用了monitorenter和monitorexit指令實現同步;
同步方法中依靠方法修飾符上的ACC_SYNCHRONIZED實現同步。
無論哪種實現方式,其過程都是互斥的,同一時刻只有一個線程能夠執行同步代碼,其它失敗的線程會被阻塞,並放入到同步隊列中,進入BLOCKED狀態。
閱讀更多 Java實戰技術 的文章