什么是适当的线程数

时间:2012-06-21 08:34:53

标签: c linux multithreading gcc pthreads

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

2 个答案:

答案 0 :(得分:2)

I / O和CPU操作非常不同。如果运行CPU密集型计算,则N =核心数将是最佳的。对于I / O,最佳数量可以更高。

答案 1 :(得分:0)

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