public synchronized int getCountOne() {
return count++;
}
上記のコードと同様に、メソッドの同期化は、メソッドの本体の周りにsynchronized (this) block
を持つことと機能的に同等です。オブジェクト "this"はロックされず、オブジェクト "this"はmutex
として使用され、ボディは "this"で同期された他のコードセクションと同時に実行されません。我々は、クラスレベルlock.Asを取得するときに我々が機能クラスレベルのロックの取得方法
public static synchronized int getCountTwo() {
return count++;
}
を持っている場合、明らかに2つのスレッドが同時にgetCountOne(オブジェクトレベルロック)のロックを取得することができるmutex
として使用されるものを同様の理由で
とgetCountTwo(クラスレベルロック)したがってgetCountOneは
と同じです。public int getCountOne() {
synchronized(this) {
return count++;
}
}
getCountTwoに相当しますか?クラスレベルのロックを取得するために使用される基準がない場合ミューテックスとして使用されるものを同様の理由で
ありがとうございました説明 – Prabhaker