Java synchronized修飾子

メソッドを同期実行する - synchronized修飾子

マルチスレッド環境で共通データを操作するときは注意が必要です。共有データに対して複数のスレッドが同時に処理を行うと、値に不一致が発生する可能性があるためです。

そのような場合は、synchronized修飾子を指定することで、そのメソッドが複数のスレッドから同時に呼び出されなくなります。ほぼ同時に呼び出されたとしても、先に呼び出した側の処理が優先され、後から呼び出した側は先行する処理が終了するまで待機状態になります。これを同期実行と呼びます。

public class ModSynchronized {
    synchronized void process() { ... }
}