from multiprocessing import Process
import time
def task(*args): #多参数的调用
print(f"{args[0]} is running")
time.sleep(3)
print(f"{args[1]} is gone")
def task2(*args):
print(f"{args[0]} is running")
time.sleep(3)
print(f"{args[1]} is gone")
if __name__=='__main__':
p1 = Process(target=task,args=('lg','aa'))
p2 = Process(target=task2, args=('lg', 'aa'))
p1.start() #这里会给cpu发送信号,让它再去开辟一个内存执行,叫做子进程
p2.start()
print("this is 主进程")
这是一种多进程的方式,可以用于同时发送多个邮件等方面。
代码获取子进程和主进程:
import os
print(os.getpid()) #获取子进程
print(os.getppid()) #获取主进程
优化下:
from multiprocessing import Process
import time
import os
def task1(aa):
global bb
print(aa)
print(os.getpid())
print(os.getppid())
if __name__=='__main__':
list = []
for i in range(2):
p = Process(target=task1, args=('lg',), )
list.append(p)
p.start()
for j in list:
j.join()
print('主')