擅长:python、mysql、java
<p>您的问题没有明确的答案:这实际上取决于函数的作用、调用频率以及需要的并行级别。在</p>
<p><code>threading</code>和{<cd2>}模块的工作方式截然不同。在</p>
<p><code>threading</code>在Python解释器中实现本机线程:创建起来相当便宜,但由于Python的全局解释器锁(GIL),并行性受到限制。线程共享相同的地址空间,因此可能会相互干扰(例如,如果一个线程导致解释器崩溃,所有线程,包括你的应用程序,死亡),但线程间的通信是廉价和快速的结果。在</p>
<p><code>multiprocessing</code>使用不同的进程实现并行:设置的开销远远高于线程(需要创建新进程),但每个进程都运行自己的解释器副本(因此没有GIL相关的锁定问题)并在不同的地址空间运行(隔离主应用程序)。子进程通过IPC通道与父进程进行通信,并要求对Python对象进行pickle/unpickle—同样,这比线程开销更大。在</p>
<p>你需要找出什么样的权衡最适合你的目的。在</p>