(win32/c++環境での作業)
リソース(の)ReadFile
から読み取る1バイトの固定サイズで(同期的に)呼び出す関数があります。この関数を実行する複数のスレッドがあります。データは外部からソケットに書き込まれ、私の制御下にはありません。データがまだ書き込まれていないときはいつでも、CPU のほぼ 80% を消費していることに気付き、使用量は前述のスレッド間で比較的均等に分割されます (通常は 4 つのスレッドがあります)。SOCKET
WINSOCK
exe
OS api と同様ReadFile
に、このような問題を回避するために、内部で非同期に実装されることを期待していました。私の質問は、なぜこれが起こっているのか、それを避けるために何ができるのかということです.