一,进程得概念:
进程是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程,例如:正在运行的qq,微信等都是一个进程
进程得创建步骤
进程的创建步骤
1.导入进程包
import multiprocessing
2.通过进程类创建进程对象
进程对象 = multiprocessing.Process()
3.启动进程执行任务
进程对象.start
二,详细案例讲解
(1),主进程会等待所有得子进程执行结束在结束
import multiprocessing
import time
import os
# 游泳函数
def swimm(num,name):
print("游泳进程的pid",os.getpid())
print("游泳进程的父进程pid:",os.getppid())
for i in range(num):
print(name)
print("看旺财在游泳。。。")
time.sleep(0.5)
# 下棋函数
def chess(num,name):
print("获取下棋进程的pid",os.getpid())
print("下棋进程的父进程pid:",os.getppid())
for i in range(num):
print(name)
print("村口两老头在下棋。。。")
if __name__=="__main__":
print("主进程的pid:",os.getpid())
# 2.通过进程类创建进程对象
# target:指定进程执行的函数民航
# args:使用元组方式给指定任务传参
# 元组的元素顺序就是任务的参数顺序
# kwargs:使用字典的方式给指定任务传参
# key就说参数的名字
swimm_process= multiprocessing.Process(target=swimm,args=(3,"小明")) #使用元组携带得参数写入
chess_process = multiprocessing.Process(target=chess,kwargs={"num":2,"name":"小兰"})#使用字典携带得参数写入
# 3.启动进程执行指定任务
swimm_process.start()
chess_process.start()
(2),设置守护主进程,主进程退出后子进程子进程直接销毁,不再执行
import time
import multiprocessing
# 主进程会等待所有的子进程执行结束在结束
def work():
for i in range(10):
print("工作中。。。")
# 子延迟0.2秒
time.sleep(0.2)
if __name__=="__main__":
# 创建子进程
work_process = multiprocessing.Process(target=work)
# 设置守护主进程,主进程退出后子进程直接销毁,不再执行子进程的代码
work_process.daemon=True
work_process.start()
# 主进程延迟1秒
time.sleep(1)
print("主进程执行完成。。。")