자바
자바(JAVA) - synchronized 란?
Hyeongjun_Ham
2024. 1. 16. 17:20
자바 - synchronized 란?
synchronized는 자바에서 멀티스레드 환경에서 동시 접근에 대한 동기화를 제공하는 키워드이다.
이를 사용하면 여러 스레드가 동일한 자원에 접근할 때 상호 배제를 통해 안전하게 작업을 수행할 수 있다.
synchronized 키워드는 크게 두 가지 주요 사용방법이 있다.
1. 메서드
public synchronized void synchronizedMethod() {
// 동기화가 보장된 코드 블록
// 여러 스레드가 동시에 이 메서드에 접근할 수 없음
}
synchronizedMethod()에 synchronized 키워드를 사용함으로써 해당 메서드는 오직 한 스레드만이 동시에 접근할 수 있다.
2. 블록에 적용
public void method() {
// 비동기적인 코드 블록
synchronized (lockObject) {
// 동기화가 보장된 코드 블록
// 여러 스레드가 동시에 이 블록에 접근할 수 없음
}
// 비동기적인 코드 블록 계속...
}
synchronized 블록은 lockObject 객체에 대해 동기화를 보장한다.
여러 스레드가 동시에 이 블록에 접근하는 것을 방지한다.
synchronized를 사용함으로써 공유 자원에 대한 안전한 동시 접근을 보장할 수 있다.
하지만 과도한 사용은 성능에 영향을 미칠 수 있으므로 필요한 부분에만 적절히 사용하는 것이 좋다.