最終更新:2016-09-27 (火) 16:30:59 (2761d)  

synchronized
Top / synchronized

synchronizedが指定されると、指定されたメソッド・ブロックが属するオブジェクトはメソッド・ブロックを実行している間、同じオブジェクト内のsynchronizedが指定されたメソッド・ブロックからアクセスされないようロックされます。

メソッド

synchronized 戻り型 メソッド名(引数型 引数名){
  メソッド本体
};
  • メソッドの処理全体を、thisに対するsynchronizedブロックで囲んだのと同じ意味

ブロック

synchronized (ロックするオブジェクト){ 
  クリティカルセクションコード 
} ;

ロックオブジェクト?

  • インスタンス間の同期に使うのでロックオブジェクトはthisを使う事が多い。
  • staticの場合
    • synchronized static public void someMethod() {は
    • synchronized(Class.forName("SomeClass?")と同じ意味

関連

参考