Process多进程
有一个例子来讲解多进程,数字+1一直加到100000000。
单独的运行一次程序
import time
from multiprocessing import Process
def son(a,):
print(a)
num = 0
for i in range(0,100000000):
num += 1
print('{}运行结果'.format(a),num)
if __name__ == '__main__':
t1 = time.time()
son('测试')
print('主进程--总耗时',time.time() - t1)
耗时:
使用Process多进程
import time,os
from multiprocessing import Process, Lock
def son(a,l):
# l.acquire()
print(a)
num = 0
for i in range(0,100000000):
num += 1
print('{}运行结果'.format(a),num)
# l.release()
if __name__ == '__main__':
# lock =Lock()
lock = 1
t1 = time.time()
# son('测试',lock)
task1 = Process(target=son,args=('进程1',lock))
task2 = Process(target=son, args=('进程2',lock))
task3 = Process(target=son, args=('进程3',lock))
task4 = Process(target=son, args=('进程4',lock))
task1.start() # 开启进程
task2.start()
task3.start()
task4.start()
task1.join() # 当前主线程阻塞,等待子进程结束
task2.join()
task3.join()
task4.join()
print('主进程--总耗时',time.time() - t1)