计算密集型的部分适合使用进程,耗时的部分适合使用线程
1 from multiprocessing import Pool
2
3 # 创建一个进程池,里面放5个进程
4 pool = Pool(5)
5
6 # 阻塞模式
7 pool.apply(task, args=(t,))
8
9 # 非阻塞模式
10 pool.apply_async(task, args=(t,), callback=callback_func)
11
12 pool.close() # 当进程池close的时候并未关闭进程池,只是会把状态改为不可再插入元素的状态,完全关闭进程池使用
13
14 pool.join() # 阻塞模式的只有当它里面的任务全部都执行完,才继续,所以不需要这步
from multiprocessing import Process
class MyProcess(Process):
def run(self):
print("this is MyProcess")
def abc(who, sd):
print("{} this is {}".format(sd, who))
if __name__ == '__main__':
# 创建进程子类
p = MyProcess()
p.start()
# 直接将方法abc放进线程
p1 = Process(target=abc, name="进程名", args=("abc", "hi"))
p1.start()