python 中可以使用 multiprocessing (多进程) 和 multiprocessing.dummy(多线程) 来实现并发操作。
两者在使用方式上一样,只不过实现并发的方式不同。
以下简单使用案例以 multiprocessing.dummy 多线程为例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from multiprocessing.dummy import Pool
def compute(param):
return param*100
params = [ _ for _ in range(10) ]
pool = Pool()
results = pool.map(compute, params)
pool.close()
pool.join()
print(results)
注意:多进程(multiprocessing) 无法在 celery 等后台进程中使用,因为 celery 等后台进程不再允许生成子进程,这时候就只能使用多线程或者协程了。
1 | daemonic processes are not allowed to have children |