전역변수가 있습니다.
int global = 1;
전역변수값을 1과 2로 반복해서 바꾸는 쓰레드가 있습니다. (하나)
thread_chg()
{
while(1)
{
if(global == 1)
global = 2;
else
global = 1;
}
}
전역변수값을 얻어서 사용하는 쓰레드가 여러개 있습니다.
thread_use()
{
while(1)
{
use_global(global);
}
}
제생각엔 thread_chg가 global에 1 이나 2를 write 하는 중에 global 을 read 한는 상태가 발생한다면, 1이나 2가 아닌 엉뚱한 값을 읽을 수도 있다고 생각하는데.. (그래서 lock이 필요할 것이라고)