1.导入进程包
import multiprocessing
multiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 multiprocessing 包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了 全局解释器锁。 因此,multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。 它在 Unix 和 Windows 上均可运行。
2.创建进程
Process([group [, target [, name [, args [, kwargs]]]]])
group参数未使用,值始终为None
target表示调用对象,即子进程要执行的任务
args表示调用对象的位置参数元组,args=(1,2,'hello',)
使用multiprocessing.Process创建进程,target表示要执行的函数,可以使用args传入元组必须要用逗号如
args=('张三',)或者用kwarges传入字典需要使用关键字的方式来指定参数,如kwargs={'name':'zhangsan','age':18}
#创建进程
sub_process = multiprocessing.Process(target=task)
3.启动进程
#启动进程
sub_process.start()
常用方法
start()启动子进程实例
join()等待子进程执行结束
terminate()不管任务是否完成 立即终止
4.最终实现
import multiprocessing
import time
def dance():
for i in range(5):
print("dance...")
time.sleep(1)def sing():
for i in range(5):
print("sing...")
time.sleep(1)
# 判断是否是直接执行的模块, 程序入口模块
# 标准python写法,直接执行的模块,需要加上判断是否是主模块的代码
if __name__ == '__main__':
#创建
dance_process = multiprocessing.Process(target=dance)
sing_process = multiprocessing.Process(target=sing)
#启动
dance_process.start()
sing_process.start()
【Python多任务编程——多进程的使用】输出结果:
dance...
sing...
dance...
sing...
dance...
sing...
dance...
sing...
dance...
sing...
推荐阅读
- Python多任务编程介绍
- python|我,28岁,汽修转行自学Python,月薪15K,是我这辈子做的最正确的选择
- 深度学习|一文理解深度学习框架中的InstanceNorm
- 人工智能|抢工程师的饭碗(业内人士这样评价AlphaCode | 今夜科技谈)
- 前沿技术|一文轻松掌握深度学习框架中的einsum
- 业界观点|Ion Stoica(做成Spark和Ray两个明星项目的秘笈)
- 前沿技术|一个Tensor在深度学习框架中的执行过程
- 机器学习实战|sklearn常用数据预处理方法
- 网络|python 网络编程-1