int data = 0;
void increase()
{
data++;
}
void decrease()
{
data--;
}
void thread1()
{
for(i = 0; i < 20000000; i++)
increase();
}
void thread2()
{
for(i = 0; i < 20000000; i++)
decrease();
}
스레드 두개가 각각 다른 역할의 함수를 호출합니다.
같은 변수를 참조하지만 그래도 결과는 0이 될줄 알았는데 아니더군요.
증가/감소 함수에 같은 크리티컬섹션을 추가하면 정상 동작합니다.
왜 이런 현상이 일어나는지 잘 이해가 가질 않네요 ㅜㅜ