1

我在 Linux/gcc 上使用创建N线程。每个线程都尽可能快地使用其 ID 进行pthread_create写入,仅此而已。for (;;) printf(...)我让整个程序运行了 3 秒钟,usleep并注意到在我的4-coreCPU 上,当N=4它产生大约 1,000,000 行时,当N=8它产生大约 4 倍时。在 4 核 CPU 上 8 线程性能更好的原因是什么?CPU 没有启用超线程。

4

2 回答 2

1

I/O 和 CPU 操作非常不同。如果您运行 CPU 密集型计算,N=内核数将是最佳的。对于 I/O,最佳数量可能要高得多。

于 2012-06-21T08:39:45.713 回答
0

如果您有 4 个线程,您将不会在每个内核上运行一个线程。两个都没有 8 线程。多核的想法是分离完成的工作。此外,您只需显示线程 ID 即可实现轻量级的 CPU 工作。因此,它不是使用您的 CPU 容量,而是使用处理显示事件的能力。

于 2012-06-21T08:43:54.417 回答