나는 동기화없이 서로 다른 스레드에서 동일한 객체에 동시에 액세스한다는 것은 일반적으로 나쁜 것임을 알고 있습니다. 하지만이 경우는 어떻게됩니까?자바 다중 스레드 원시 변수 액세스
여러 개의 스레드가 실행 중입니다 (ThreadA & ThreadB 두 개를 고려하십시오). 또한 Thread가 무언가를하는 횟수를 세는 정적 클래스를 가지고 있습니다.
public class Counter {
static private int counter=0;
static public void incCounter() {
counter++;
}
}
ThreadA와 ThreadB가 모두 Counter.incCounter()를 호출하면 어떻게됩니까?
비참한 아무것도하지만 카운터가 정확 합하지 않습니다 : 잘못된 언어를 사용 할 수없는 경우
말했다되고있다. – irreputable@irreputable : "재앙"이라고 생각하는 것에 따라 다릅니다. 중요한 것이 카운터에 의존하면 실패합니다. –
다른 스레드의 동일한 객체에 액세스하는 것이 나쁜 이유는 무엇입니까? 필요한 경우 필요합니다. –