2

私は、posix スレッドによる並列サポートを持つ複雑な C コードを使用しています。ハイパースレッディングが存在する前に書かれました。

Macbook i5 (2 コア 4 スレッド) でコードを実行しています。4 つのスレッドで強制的に実行すると、コードにさまざまな malloc エラーなどが発生しますが、2 つのスレッドでは問題ないため、疑問が生じました。

私は pthread についてまったく何も知らないので、物理コアの数だけで正しく実行されるのではなく、使用可能なスレッドの数を自動的に検出して正常に実行されると想定しました。

4

1 に答える 1

8

いいえ、ユーザーランド コードに特別なサポートは必要ありません。OS はすべての違いを隠します。

スレッド数を増やしてもコードが正しく実行されない場合は、バグがあります。

于 2012-12-30T17:51:57.667 に答える