
No.1ベストアンサー
- 回答日時:
Java における排他制御について
なんらかのオブジェクトを synchronized 構文で「ロック」することで排他制御を実現しますが、
オブジェクトによって排他制御する範囲が決まるため、
要件にあわせて選ばなければいけません。
new Object() 等で作成した個別インスタンスをロックすると、
その個別インスタンスを使うスレッドのみが範囲なので、
細かく制御を分ける場合に使います。
this をロックすると、
現インスタンスを使うスレッドだけが範囲となり、
一般的な用途ではこれで十分なはずです。
synchronize 修飾したメソッドは、
this とほぼ同じです。
synchronize static 修飾したメソッドは、
this ではなく クラスオブジェクト をロックすることになり、
インスタンス毎ではなくクラスを使う全てのスレッドが範囲なので、
アプリケーション全体を対象として排他するような場合に使います。
参考
https://docs.oracle.com/javase/specs/jls/se13/ht …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
オブジェクト参照がオブジェク...
-
フォームのCheck boxとOLEObjec...
-
JSPでの表示
-
プログラミング、シューティン...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
0歳児の指しゃぶりに関して
-
河合塾
-
VBスクリプトでテキストファイ...
-
javascriptからjavaを呼び出したい
-
エクセルVBAで、条件に一致する...
-
進学校通ってたんですけど、眼...
-
canvasで表示されてる画像を1...
-
河合塾のクラス分けについて
-
多人数のじゃんけんプログラム
-
ヒグマを撃退
-
C# 「データが失なわれる可能性...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
複数の変数を宣言する時、同時...
-
オブジェクト参照がオブジェク...
-
VB.NET getとsetの概念がわかり...
-
フォームの存在をチェックする方法
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
生成したインスタンスを削除す...
-
文字列を日付に変換でParseExce...
-
次の日本語の意味を教えて下さい
-
C#「オブジェクト参照が必要で...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
[Visual C#] 優先される処理に...
-
newしないインスタンス?実体化...
-
C#の構造体の開放のしかた
-
javaのクラスの作り方、エラー...
おすすめ情報