int g_iValue = 0;
unsigned int __stdcall ThreadFunc1(void* _pArg)
{
for (int i = 0; i < 50000; ++i)
{
--g_iValue;
}
return 0;
}
unsigned int __stdcall ThreadFunc2(void* _pArg)
{
for (int i = 0; i < 50000; ++i)
{
++g_iValue;
}
return 0;
}
g_iValue의 결과값이 뭐나올까? 아는 사람 몇명되려나
0 이잖아
땡
사실 잘모르고던져봤음 ㅋㅋ
이걸 아는놈이 새벽4시에 프갤 쳐하고 있겠냐 으이구 ㅋㅋ
unsigned부터 모르겠네 ㅋㅋㅋ
그래서 답이 뭔데. 나 지금 궁금해서 안자고 기다리고있는거야
이상한 값나와. 2개의 쓰레드가 하나의 자원을 동시에 접근할때 생기는 동기화 문제인데
동기화만 해주면 끝나
정확한 과정을 알려면 어셈블리어로 더하는 과정을 생각해보면 이해될꺼야