python中使用multiprocessing可以很方便的实现多进程,利用好多核的优势
# python 多进程
import multiprocessing
import time
def func(msg):
for i in range(3):
print(msg)
time.sleep(0.5)
def func1(msg):
for i in range(3):
print(msg)
time.sleep(0.5)
return 'done {}'.format(msg)
# 使用进程
def process_demo():
p = multiprocessing.Process(target=func, args=('Hello',))
p.start()
p.join()
print('进程结束')
# 使用进程池
def process_pool():
pool = multiprocessing.Pool(processes=4)
for i in range(10):
msg = 'hello{}'.format(i)
pool.apply_async(func, args=(msg,))
pool.close()
pool.join()
print('进程结束')
# 使用进程池 关注每次方法的结果
def process_pool_result():
pool = multiprocessing.Pool(processes=4)
result = []
for i in range(10):
msg = 'hello {}'.format(i)
result.append(pool.apply_async(func1,args=(msg,)))
pool.close()
pool.join()
for res in result:
print(res.get())
print('进程池执行结束')
if __name__ == '__main__':
# process_demo
# process_pool
process_pool_result()