3

Windows API または現在のスレッドが実行されている物理プロセッサ/コアを特定する方法はありますか? その情報は必要ありません。私はただ興味があります。

スレッドが実行できるプロセッサには興味がありません。現在、どちらで実行されているかを正確に知りたいです。スレッドが次から次へとかなり速く切り替わることは知っています...

4

3 に答える 3

4

スレッドはプロセッサごとに頻繁に切り替わるため、意味がありませんが、GetCurrentProcessorNumber.

他の人が言ったように、GetProcessAffinityMaskorを使用できますGetThreadIdealProcessorが、これらはスレッドにアフィニティ マスクまたは理想的なプロセッサを既に設定している場合にのみ機能します。

于 2009-08-27T14:25:25.293 に答える
3

GetProcessAffinityMaskを使用してプロセッサ アフィニティをクエリできます。プロセッサ アフィニティを設定していない場合、スレッドがプロセッサ間を移動する可能性があるため、結果がどれほど役立つかはわかりません。

于 2009-08-27T14:18:57.597 に答える
2

Windows API を使用してプロセスまたはスレッドが実行されるプロセッサを制御するには、SetThreadAffinityMaskまたはSetProcessAffinityMaskを使用できます。

これらは、ビットマスクにビットを設定することで機能します。各ビットは、スレッドまたはプロセスをスケジュールできるプロセッサを表します。

BOOL WINAPI SetProcessAffinityMask(
  __in  HANDLE hProcess,
  __in  DWORD_PTR dwProcessAffinityMask
);

GetProcessAffinityMaskを呼び出して、これらの呼び出しで使用できるプロセッサを検出します。

于 2009-08-27T14:17:06.803 に答える