synchronized修飾子
メソッドを同期実行する – synchronized修飾子マルチスレッド環境で、共通のデータを操作する際には要注意です。というのも、共有データに対して複数のスレッドが同時に処理を実行した場合、値に矛盾が生じる可能性があるからです。
そのような場合には、synchronized修飾子を付与することで、そのメソッドは複数のスレッドから同時に呼び出されることがなくなります。ほぼ同時に呼び出されたとしても、先に呼び出した側の処理が優先され、後から呼び出した側は先行する処理が終了するまで待ち状態になります(これを同期実行と言います)。
public class ModSynchronized { synchronized void process() { ... } }
synchronized修飾子が正しく動作するには、メソッドが属するインスタンスが一致していなければなりません。インスタンスが異なる場合には、同期実行は正しく働きません。
関連ページ
synchronized