同期オブジェクトを使用せずに複数プロセスで共有データを保護する方法
while( InterlockedExchange( &lock, 1 ) != 0 ) { Sleep( 100 ); } __try { ...... } __finally { InterlockedExchange( &lock, 0 ); }
共有データ上にロック用のLONG値の領域を確保。
InterlockedExchange API(win95でもサポートされている)を用いて保護ブロックを構成する。
待機側のレスポンスを改善するにはSleepをなくせばよいがCPU使用率が上がるし、CPU使用率を下げるためにSleepを入れればレスポンスが落ちるので、ロックの競合が頻発するような状況には適さない。