Java synchronized 수식자
메서드 동기화 실행 – synchronized 수식자
멀티스레드 환경에서 공통 데이터를 조작할 때는 주의해야 한다. 그 이유는 공유 데이터에 대해 여러 스레드가 동시에 처리를 수행하면 값에 불일치가 발생할 수 있기 때문이다.
그러한 경우에는 synchronized
수식자를 지정하는 것으로 그 메소드는 복수의 thread로부터 동시에 불려 가는 것이 없어진다. 거의 동시에 호출되었다고 해도 먼저 호출한 측의 처리가 우선되고, 나중에 호출한 측은 선행하는 처리가 종료할 때까지 대기 상태가 된다(이를 동기 실행 이라고 한다).
public class ModSynchronized {
synchronized void process() { ... }
}
Note
synchronized
수식자가 올바르게 작동하려면 메소드가 속한 인스턴스가 일치해야 한다. 인스턴스가 다른 경우 동기화 실행이 제대로 작동하지 않는다.
최종 수정 : 2022-10-03