擅长:python、mysql、java
<p>接近!我认为问题来自于你的<code>target</code>中的括号:</p>
<pre><code>import time
import multiprocessing as mp
import os
def printFive():
for i in range(5):
print ('printFiveCalled')
time.sleep(1)
def printTen():
for i in range(10):
print ('printTenCalled')
time.sleep(0.5)
if __name__ == "__main__":
p1 = mp.Process(target = printFive)
p2 = mp.Process(target = printTen)
p1.start()
p2.start()
p1.join()
p2.join()
os.system("pause")
</code></pre>
<p>然后是线程和多处理之间的区别。对于多处理,您将同时使用计算机的多个核心(1/process是理想的)。但是,python线程不是真正的多线程,因为全局解释器锁将禁止多个线程同时运行。在</p>
<p>结论:线程是串行运行的,进程是并行运行的。
当部分计算不是用Python完成时,线程是很有用的。i、 e.当使用numpy、OpenCV。。。交换到C的库</p>
<p>多处理的最后一点:使用它最简单的方法是创建1个函数,该函数执行大量计算,并且需要在多个输入上运行。然后,可以使用<code>Pool()</code>和<code>map()</code>。在</p>
^{pr2}$
<p>注意:对于线程,我很欣赏使用<code>multiprocessing.dummy</code>,它的工作原理与<code>multiprocessing</code>完全相同,但与线程一起使用。在</p>