javaのstatic synchronizedメソッドの使い方は?
質問
一つ質問があります。静的同期メソッドはクラスオブジェクトをロックし synchronizedメソッドはオブジェクトの現在のインスタンスをロックします。では ロックされる はどのような意味を持つのでしょうか?
誰もがこのトピックで私を助けてくださいすることができますか?
どのように解決するのですか?
一般的には
synchronized
メソッドは、同時にアクセスされるリソースへのアクセスを保護するために使用されます。同時にアクセスされるリソースがクラスの各インスタンスに属している場合、クラス内で
synchronized
インスタンスメソッドを使用します。リソースがすべてのインスタンスに属する場合 (つまり、リソースが
static
変数にある場合) は
synchronized static
メソッドを使ってアクセスします。
例えば
static
ファクトリーメソッドは、それが生成したすべてのオブジェクトの "registry" を保持します。そのようなレジストリのための自然な場所として
static
コレクションになります。ファクトリーが複数のスレッドから使用される場合、ファクトリーメソッドを
synchronized
を実装する必要があります (あるいは
synchronized
ブロックに入れる) ことで、共有の
static
コレクションへのアクセスを保護します。
を使うことに注意してください。
synchronized
を使用することは、他の人が書いたコードで使用されるライブラリを構築している場合、一般的に最も安全な選択ではありません。なぜなら、悪意のあるコードがあなたのオブジェクトやクラスに対して同期をとり、あなた自身のメソッドの実行をブロックする可能性があるからです。このような事態からコードを保護するには、インスタンスまたは静的なプライベートロックオブジェクトを作成し、代わりにそのオブジェクト上で同期をとるようにします。
関連
-
アノテーション「@Retention」の役割
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み] 静的メソッドを使用する場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Java の switch case 文で必要な定数式の問題の解決法
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
Javaジェネリックを1つの記事で
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
java send https request prompt java.security.cert.について。
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
java 365*1000*60*60*24 計算問題
-
Zipファイルの圧縮・解凍にantを使用する