擅长:python、mysql、java
<p>您可以像这样使用<a href="https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool" rel="nofollow noreferrer">^{<cd1>}</a>和<a href="https://docs.python.org/3.8/library/os.html#os.system" rel="nofollow noreferrer">^{<cd2>}</a>:</p>
<pre><code>import sys
import os
import multiprocessing
tools = ['tool1', 'tool2', 'tool3', 'tool4', 'tool5']
arg1 = sys.argv[1]
p = multiprocessing.Pool(len(tools))
p.map(os.system, (t + ' ' + arg1 for t in tools))
</code></pre>
<p>这将启动<code>len(tools)</code>并行进程,这些进程将执行<code>os.system('toolN arg')</code></p>
<p>不过,一般来说,您不需要<code>Pool(len(tools))</code>,因为如果启动的进程数超过机器上可用的核数N,则无法很好地扩展,因此您应该改为<code>Pool()</code>。这仍然会执行每个工具,但最多会同时执行N个</p>