python3实现多进程示例代码

作者知道python3代码实现多进程的方式主要有三种:fork()函数muliprocessing模块进程池

fork()函数
import os
pid = os.fork()
"""
使用fork()创建子进程,会在父进程中返回子进程的pid,在子进程中返回0
"""
if pid < 0:
	print('子进程创建失败')
elif pid == 0:
	print('这是子进程')
else:
	print('这是父进程')
print('进程运行结束')
muliprocessing模块
from multiprocessing import Process
"""
创建子进程:将子进程中需要执行的时间封装为函数,将这个函数传给Process
"""
def func(name,age):
	print('{}的年龄是{}'.format(name,age))
p = Process(target=func,kwargs={'name':'testname', 'age':18})
p.start() #子进程开始运行
p.join()	#阻塞等待子进程结束,回收子进程
"""
muliprocessing创建多进程
"""
def func(name,age):
	print('{}的年龄是{}'.format(name,age))
process_list = []
for i in range(10):
	p = Process(target=func,kwargs={'name':'testname', 'age':18})
	process_list.append(p)
	p.start() 
for process_child in process_list:
	process_child.join()
进程池创建多个子进程
"""
由于频繁创建和撤销进程消耗资源较大,
所以引进进程池,将各项需求作为事件传入进程池来创建子进程,
当子进程结束后,不会回收子进程,只是终止事件,避免频繁创建和撤销子进程,减少资源消耗
"""
from multiprocessing import Pool
def func_test(num):
	print('这是第{}个事件'.format(num))
p = Pool() #创建进程池对象
for i in range(10):
	p.apply_async(func=func_test, kwds={'num': i})
p.close() #关闭进程池,事件不能加入进程池中
p.join() #回收进程池


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值