synchronized 로는 기본형 변수(int, float 등등)는 동기화 할 수 없나요??
다옴
2023.04.01
class ST extends Thread {
static int a = 0;
public void run() {
while (a 20) {
synchronized (a) {
System.out.println(a + );
a++;
}
}
}
public static void main(String[] args) {
ST s1 = new ST();
ST s2 = new ST();
s1.run();
s2.run();
}
}
이렇습니다.
int 형인 a를 동기화 시켰더니 타입이 맞지 않는다는 에러가 나는군요..
기본형은 동기화 할 수 없나요??
-
훌림목
아..그렇군요..고맙습니다~.
-
적송
흠.. a 변수가 static 이군요. 그럼 클래스에다가 락을 걸어야 하나?
synchronized ( ST.class ) {
// SomeCode
}
이런식으로도 할 수 있습니다. -
앨프레드
네.. 저는 그렇게 알고 있습니다. 하신다면 다음과 같이 하는 방법이 있겠군요.
synchronized (this) {
// Some Code
}
즐거운 하루 되세요~ ^_^