자바 - synchronized 란?
synchronized는 자바에서 멀티스레드 환경에서 동시 접근에 대한 동기화를 제공하는 키워드이다.
이를 사용하면 여러 스레드가 동일한 자원에 접근할 때 상호 배제를 통해 안전하게 작업을 수행할 수 있다.
synchronized 키워드는 크게 두 가지 주요 사용방법이 있다.
1. 메서드
public synchronized void synchronizedMethod() {
// 동기화가 보장된 코드 블록
// 여러 스레드가 동시에 이 메서드에 접근할 수 없음
}
synchronizedMethod()에 synchronized 키워드를 사용함으로써 해당 메서드는 오직 한 스레드만이 동시에 접근할 수 있다.
2. 블록에 적용
public void method() {
// 비동기적인 코드 블록
synchronized (lockObject) {
// 동기화가 보장된 코드 블록
// 여러 스레드가 동시에 이 블록에 접근할 수 없음
}
// 비동기적인 코드 블록 계속...
}
synchronized 블록은 lockObject 객체에 대해 동기화를 보장한다.
여러 스레드가 동시에 이 블록에 접근하는 것을 방지한다.
synchronized를 사용함으로써 공유 자원에 대한 안전한 동시 접근을 보장할 수 있다.
하지만 과도한 사용은 성능에 영향을 미칠 수 있으므로 필요한 부분에만 적절히 사용하는 것이 좋다.
'자바' 카테고리의 다른 글
스프링 테스트 코드 @RestControllerAdvice를 거치게 하는 방법 (0) | 2024.01.25 |
---|---|
자바 Atomic 패키지 (2) | 2024.01.24 |
JVM (Java Virtual Machine) (0) | 2024.01.18 |
객체 지향 4대 특성 간단 정리 (0) | 2022.09.07 |
JDK, JRE, JVM 간단 정리 (0) | 2022.09.06 |