オブジェクトに排他ロックを追加するにはJavaを使用する
Javaでは、`synchronized`キーワードを使用してオブジェクトに排他ロックを追加できます。その手順は次のとおりです。
- synchronizedキーワードを、排他制御を追加したいメソッドの前に追加します。 例えば、あるメソッドに排他制御を追加したいのであれば、そのメソッドの宣言をsynchronizedメソッドにします。
public synchronized void method() {
// 方法体
}
- 排他制御を行う場合はsynchronizedキーワードに排他制御対象のオブジェクトを指定できます:
synchronized (obj) {
// 代码块
}
obj はロック対象です。
スレッドがsynchronizedキーワードで修飾されたブロックやメソッドを実行すると、オブジェクトのロックを獲得します。他のスレッドは、そのスレッドがロックを解放するまでブロックされます。
同期化キーワードは同一オブジェクトに対する異なるスレッドのみをロックでき、異なるオブジェクトのスレッドをロックできないことに注意する必要があります。複数のオブジェクトを同時にロックする必要がある場合は、ReentrantLockなどのLockインターフェイスの実装クラスを使用することを検討してください。