擅长:python、mysql、java
<p>简单的方法:采用一个N核系统,进行一些基准测试,以确定你的应用程序需要执行多少个进程才能达到最高效率。它可能是N、N+1或N+2个过程(例如,对于通常的软件构建<code>make</code>运行,文档通常建议将-j设置为N+1)。然后对于生产运行,只需向用户或操作系统询问<em>物理内核的数量</em>(不是线程),然后生成N个或N+1个或任何进程。在</p>
<p>更复杂、更酷,也不一定是更好的方法:如果您可以测量已完成的工作单元的吞吐量,那么您可以尝试在不知道/检测cpu/核心/线程数量的情况下动态调整进程的数量-如果您愿意,可以类似于TCP窗口大小。从2个进程的目标开始,当第一个进程结束时,测量吞吐量并转到target+=1(即,使总数达到3个进程)。测量,冲洗,重复。只要总吞吐量继续上升,就保持递增;当总吞吐量下降时,就降低吞吐量。在混合中加入一些滞后性,确保配置一个合理的上限。在</p>
<p>关于你的笔记本电脑的例子,是的,这是一个多线程的CPU,多线程将比其他线程更有益于某些工作负载,你的是一个没有从中受益的:)</p>