0

私はこの問題に関するいくつかの記事を読みました。事件は簡単ではないようです。2つのコアに2つの異なるスレッドを作成したいと思います。私が読んだ記事は複雑すぎました。それらの記事に基づいて簡単なスレッドを作成することさえできませんでした。一方、両方のコアを使用するか、1つのコアにスレッドを作成するかの選択肢として、コンピューターが使用できるコアの数を理解する必要があります。Windowsでやりたいです。どんな助けでも大歓迎です

PS:私はC++のプロではありません。ですから、可能であれば、もっと簡単な方法で私を導いてください。

4

2 に答える 2

5

これは一般的にお粗末な考えですが(スレッドスケジューラは通常、それ自体でより良い仕事をします)、基本的な考えは次のようになります。

HANDLE thread_a = CreateThread(/* ... */);
HANDLE thread_b = CreateThread(/* ... */);

SetThreadAffinityMask(thread_a, 1 << 0);
SetThreadAffinityMask(thread_b, 1 << 1);

1<<0とはそれぞれと1<<1同じくらい簡単に書くことができることに注意してください-私は各ビット位置がプロセッサを表すという事実を明示しようとしていました。12

于 2012-08-25T18:40:43.377 に答える
1

For posix, check out pthread_getaffinity_np and pthread_setaffinity_np

于 2012-08-25T18:44:11.187 に答える