synchronized 사용법

·2025년 4월 20일

synchronized 을 어떻게 하면 잘 사용을 할까?
아래와 같이 3가지 경우가 있는데
그냥 그때그때 상항에 맞게 사용을 하면 될 것 같아.
난 주로 incrementCounter3()을 많이 사용하게 될 것 같아.
아래 코드로 단순 비교를 했을 때
3 > 2 > 1 순으로 빠르다.
코드가 복잡하면 또 어떻게 될지 모르겠다.

private int counter = 0;

public synchronized void incrementCounter1() {
	counter++;
}

public void incrementCounter2() {
	synchronized (this) {
	    counter++;
	}
}

private final Object lock = new Object();
public void incrementCounter3() {
	synchronized (lock) {
	    counter++;
	}
}	
profile

0개의 댓글