Java synchronized修飾子
メソッドを同期実行する - synchronized修飾子
マルチスレッド環境で共通データを操作するときは注意が必要です。共有データに対して複数のスレッドが同時に処理を行うと、値に不一致が発生する可能性があるためです。
そのような場合は、synchronized修飾子を指定することで、そのメソッドが複数のスレッドから同時に呼び出されなくなります。ほぼ同時に呼び出されたとしても、先に呼び出した側の処理が優先され、後から呼び出した側は先行する処理が終了するまで待機状態になります。これを同期実行と呼びます。
public class ModSynchronized {
synchronized void process() { ... }
}
Note
`synchronized`修飾子が正しく動作するには、メソッドが属するインスタンスが一致している必要があります。インスタンスが異なる場合、同期実行は正しく動作しません。