Java Synchronized
Java Synchronized
Java Synchronized
- 자바에서 임계 영역 (critical section)에 대한 동기화를 수행하기 위해 사용하는 예약어
- 임계 영역인 메소드 혹은 코드 블럭 앞에
synchronized
예약어를 붙이면 됨 - 즉, 한 개의 스레드만 해당 임계 영역에 접근 가능
- 당연하지만
synchronized
예약어를 많이 쓸수록, 스레드가block
되므로 성능 저하 발생 - 메소드에 사용하는 방법
public synchronized void increase() {
count++;
}
- 코드 블럭에 사용하는 방법
public void increase() {
// Non-critical section
synchronized(this) {
count++;
}
// Non-critical section
}