如果我有一个启动的进程X线程数量,是否会有性能增益X高于数量CPU核心(假设所有线程都同步工作,没有对存储/网络的异步调用)?
例如。如果我有两个核心CPU,我会减慢应用程序启动 3 个以上持续工作线程的速度吗?
这实际上取决于您的代码的作用。它太宽泛了。
拥有比核心更多的线程可能会加快程序速度,例如,如果某些线程休眠或尝试阻塞锁。在这种情况下,操作系统调度程序可以唤醒不同的线程,并且该线程将在另一个线程休眠时工作。
拥有比核心数量更多的线程也可能会减少程序执行时间,因为操作系统调度程序必须做更多的工作来在线程执行之间切换,并且调度可能是一项繁重的操作。
与往常一样,使用不同数量的线程对应用程序进行基准测试是实现最大性能的最佳方法。还有一些算法(例如爬山)可以帮助应用程序在运行时微调最佳线程数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)