1

Linux/gccNを使用してスレッドを作成します。各スレッドは、そのIDを使用して可能な限り高速にpthread_create書き込みますが、それ以外は何も行いません。for (;;) printf(...)プログラム全体を使用して3秒間実行すると、 CPUで約1,000,000行が生成され、約4倍の行が生成されることusleepに気付きます。4コアCPUで8スレッドのパフォーマンスが向上する理由は何ですか?CPUでハイパースレッディングが有効になっていません。4-coreN=4N=8

4

2 に答える 2

1

I/O と CPU の操作は大きく異なります。CPU を集中的に使用する計算を実行する場合は、N= コア数が最適です。I/O の場合、最適な数ははるかに高くなる可能性があります。

于 2012-06-21T08:39:45.713 に答える
0

4スレッドの場合、各コアで1つのスレッドを実行することはできません。どちらも2と8スレッドではありません。マルチコアの考え方は、達成された作業を分離することです。さらに、スレッドIDを表示するだけで、CPUの負荷を軽減できます。したがって、CPU容量ではなく、表示イベントを処理する機能を使用しています。

于 2012-06-21T08:43:54.417 に答える