我第一次玩 pthreads,在我的机器上运行时发现了一些奇怪的东西。
我有一个带有 2 个物理内核和 4 个虚拟内核的 Intel i5。
使用 2 个线程运行我的程序时,我的性能大约提高了一倍,但是使用 4 个线程运行时,我获得的性能与两个线程相同。为什么会这样?
2 个线程的结果:真实 0m9.335s 用户 0m18.233s sys 0m0.132s
4 个线程的结果:真实 0m9.427s 用户 0m34.130s sys 0m0.180s
编辑:代码是完全可并行化的,线程独立运行,没有任何共享资源。