3

Java インスタンス同期メソッドは並列に実行でき、静的メソッドはメソッドをシリアル化することを理解しています。私の理解不足は、静的メソッドが Class オブジェクトをロックするため、他の Class オブジェクトで何が起こるかです。すべての静的クラス間でロックしていますか?

ありがとう。

4

2 に答える 2

2

インスタンス/オブジェクトをロックする代わりに、クラス自体をロックします。

クラスをロックすると、すべてのクラスではなく、そのクラスのみがロックされます。

ドキュメントから

同期メソッドは、実行前にモニター (§17.1) を取得します。

クラス (静的) メソッドの場合、メソッドのクラスの Class オブジェクトに関連付けられたモニターが使用されます。

インスタンス メソッドの場合、これ (メソッドが呼び出されたオブジェクト) に関連付けられたモニターが使用されます。

于 2013-07-08T19:08:23.520 に答える