擅长:python、mysql、java
<p>如果您想使用公共Python实现(CPython),您当然可以使用<a href="http://docs.python.org/library/multiprocessing.html" rel="nofollow noreferrer">multiprocessing</a>模块,该模块<a href="https://stackoverflow.com/questions/2102216/how-can-multiple-calculations-be-launched-in-parallel-while-stopping-them-all-wh">does wonders</a>(您可以将不可pickle的参数传递给子进程,终止任务,…),提供类似于线程的接口,并且不受全局解释器锁的影响。</p>
<p>缺点是子进程是派生的,这比创建线程需要更多的时间;只有当您有许多短任务时,这才应该是一个问题。此外,由于数据是在进程之间(通过序列化)传递的,因此大数据的传递都需要很长时间,并且最终会占用很大的内存(因为它在每个进程之间都是重复的)。在每个任务花费“很长”时间并且每个任务进出的数据不太大的情况下,<a href="http://docs.python.org/library/multiprocessing.html" rel="nofollow noreferrer">multiprocessing</a>模块应该很棒。</p>