07/04/13 08:41:59
>>7
変数だと
たとえばaが0以外になると次の処理に進む。
while(true) {
if( a != 0 ) break;
Sleep(100);
}
最適化されて
if( a == 0 ) {
while(true) {
Sleep(100);
}
}
になってしまうことないようにvolatile使うんじゃないの。
でも俺は最適化とvolatileが上手く機能するか調べたことない。
同期イベントなら関数コールして調べるので前期のような最適化はかからない。
また、上記だと1秒間に10回aを調べる。
aの値が変化しても反応が最大で100ミリ秒遅れる。
かといってSleepを減らすとこの空回りするループにCPU処理を使ってしまい無駄。