同期の実現原理

Javaのすべてのオブジェクトにはモニター(モニターロック)があり、同期によってロックされたコードに対してスレッドが実行されると、モニターロックを取得しようとします(monitorenter命令を実行します)。

取得した場合、ロックのカウンタが1つ増加します(初期値は0です)他のスレッドがロックを取得したい場合は、前のスレッドが監視ロックを解除する(monitorexit命令を実行する)までブロックされます。

ロックの取得と解放を同期する作業はJVMによって行われ、私たちが自分で行う必要はありません。

関連する知識:https://www.cnblogs.com/lycroseup/p/7486860.html

おすすめ

転載: www.cnblogs.com/zmld-cn/p/12738367.html