注:注释是对代码的一些解释
创建进程
import os
from multiprocessing import Process
from time import sleep
def test1(x):
while True:
sleep(x)
print("这是任务1",'子',os.getpid(),'父',os.getppid())
def test2(a):
while True:
sleep(a)
#os.getpid进程号os.getppid父进程号
print('这是任务2','子',os.getpid(),'父',os.getppid())
if __name__ == '__main__':
#创建进程,这是两个子进程,当你运行程序的时候python解释器就已经默认给你分配了一个进程,然后这个程序里面有创建了两个子进程
#若是需要传参数,Process有别的属性args这个后面需要跟一个可迭代的,这个里面的就是你给函数传的参数
#p.run只启动任务不执行进程,p.start启动进程并执行任务.p.terminate终止进程
p = Process(target=test1,name='任务1',args=(1,))
p.start()
print(p.name)
p1 = Process(target=test2,name="任务2",args=(2,))
p1.start()
print(p1.name)
结果
(部分)
自定义进程
#自定义进程的原因,父类不够用
from multiprocessing import Process
class MyProcess(Process):
def __init__(self,name):
super().__init__()
self.name = name
def run(self):
n=1
while True:
print('{}--->自定义进程,n:{}'.format(n,self.name))
n = n+1
if __name__ == "__main__":
#若是没有重写__init__方法,这时输入名字会默认去找底层的父类,所以需要重写__init__
p = MyProcess('小明')
p.start()
p1 = MyProcess('小红')
p1.start()
结果
(部分)
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚