ホームページ > Java > &#&チュートリアル > Java の静的メソッドで「synchronized」キーワードは何をロックしますか?

Java の静的メソッドで「synchronized」キーワードは何をロックしますか?

Patricia Arquette
リリース: 2024-11-10 11:35:02
オリジナル
597 人が閲覧しました

What Does the `synchronized` Keyword Lock on in a Static Method in Java?

Java の同期された静的メソッド: クラスまたはオブジェクトのロック

オブジェクトに関連付けられたインスタンス メソッドとは異なり、静的メソッドには何もありません。明示的なオブジェクト参照。ここで疑問が生じます: 静的メソッドが同期されるとき、キーワードはクラスまたはオブジェクトをロックしますか?

Java ドキュメントによると、同期されたメソッドは、「同期されたメソッドを 2 回呼び出すことは不可能である」ことを保証します。同じオブジェクト上でインターリーブします。」ただし、静的メソッドの場合、関連付けられたオブジェクトはありません。

クラス オブジェクトのロック取得

明確にするために、静的メソッドの synchronized キーワードはクラスをロックします。オブジェクトそのものではなく、オブジェクトです。 Java 言語仕様 (セクション 8.4.3.6) では、次のように述べられています。

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

したがって、2 つのスレッドが同じクラス上で同期された静的メソッドを実行する場合、それらはシリアル化され、一度に 1 つのスレッドのみが実行されることが保証されます。

要約すると、静的メソッドの同期を理解することが重要です。インスタンスメソッドとは動作が異なります。静的メソッドはクラス オブジェクトのロックを取得し、共有データへの制御されたアクセスを提供し、同時実行を防ぎます。

以上がJava の静的メソッドで「synchronized」キーワードは何をロックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート