我是靠谱客的博主 满意机器猫,最近开发中收集的这篇文章主要介绍Python多进程编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python多任务提升程序性能之一---------多进程

#Python的多进程编程的方法是multiprocessing,他是可以在当前的主进程下面去创建n个子进程所以所以他,执行相当于n+1个进程
#首先导入multimprocessing包
import multiprocessing
#防止执行熟读太快看出出多进程的区别
import time
#编写尊卑使用多进程的方法
def test01():
for i in range(10):
print("A")
time.sleep(0.5)
def test02():
for i in range(10):
print("B")
time.sleep(0.5)
if __name__ == "__main__":
#创建线程
P1 = multiprocessing.Process(target = test01)
P2 = multiprocessing.Process(target = test02)
#启动线程
P1.start()
P2.start()

这里我们可以搭配os的方法去获取我们的进程变化查看当前的进程号

import multimprocessing
#防止执行熟读太快看出出多进程的区别
import time
#用来获取进程号
import os
#编写尊卑使用多进程的方法
def test01():
print(f"当前进程号为{os.getpid()},当前进程的父进程号为{os.getppid()}")
for i in range(10):
print("A")
time.sleep(0.5)
def test02():
print(f"当前进程号为{os.getpid()},当前进程的父进程号为{os.getppid()}")
for i in range(10):
print("B")
time.sleep(0.5)
if __name__ == "__main__":
#获取当前的主进程号和他的父进程号
print(f"当前的主进程号为{os.getpid()},当前的父进程号为{os.getppid()}")
#创建线程
P1 = multimprocessing.Process(target = test01)
P2 = multimprocessing.Process(target = test02)
#启动线程
P1.start()
P2.start()

这里因为我们的主进程会等待子进程结束后才会去关闭主进程,那么这里就有守护进程的概念,一共有两种方法,一在进程启动前去添加守护进程,一个是在启动后手动结束进程的方法

#首先导入multimprocessing包
import multiprocessing
#防止执行熟读太快看出出多进程的区别
import time
#编写尊卑使用多进程的方法
def test01():
for i in range(10):
print("A")
time.sleep(0.5)
def test02():
for i in range(10):
print("B")
time.sleep(0.5)
if __name__ == "__main__":
#创建线程
P1 = multiprocessing.Process(target = test01)
P2 = multiprocessing.Process(target = test02)
#添加守护进程,守护进程不许要进程没有启动前去进程添加
P1.daemo = True
P2.daemo = True
#启动线程
P1.start()
P2.start()
#添加手动结束进程
#P1.terminate()
#P1.terminate()

那么问题来了我们多进程运行函数的时候没有带括号那么我们的参数如何传入呢,不要着急接着看
请上我们的老演员代码

import multiprocessing
#防止执行熟读太快看出出多进程的区别
import time
#编写尊卑使用多进程的方法
def test01(A):
for i in range(10):
#这里我们将A设计成为形参
print(A)
time.sleep(0.5)
def test02(B):
for i in range(10):
#这里我们将B设计成为形参
print(B)
time.sleep(0.5)
if __name__ == "__main__":
#创建线程
#这里因为我们函数要得是寻找到对应函数而不是调用所以我们没有带上号口号,那么显然我们传参数就有固定方法,一种是一元组的方式传入,一种是字典的形式传入
#元组传法
P1 = multiprocessing.Process(target = test01,args = (10,))
#字典传法
P2 = multiprocessing.Process(target = test02,kwargs = {"B" : 10})
#这里就和我们的普通函数传参非常像,一种按照顺序传参,一种打乱顺序但是带上参数名称传参
#启动线程
P1.start()
P2.start()

最后

以上就是满意机器猫为你收集整理的Python多进程编程的全部内容,希望文章能够帮你解决Python多进程编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部