1. multiprocessing模块
简单使用
from multiprocessing import Process
import time
def time_a():
time.sleep(2)
print("Hello,我是第一个")
def time_b():
time.sleep(2)
print("我是第二个")
# a.time_a(1)
# a.time_b(1)
if __name__ == '__main__':
print("多线程")
# 创建一个子进程
p1 = Process(target=time_a,)
p2 = Process(target=time_b,)
# 启动子进程
p1.start()
for i in range(5):
print(i)
time.sleep(i)
p2.start()
2. for 循环创建进程
from multiprocessing import Process
import time
def time_a(i):
time.sleep(3)
print("Hello,",i)
if __name__ == '__main__':
for i in range(20):
# target 调用函数 args 传参
p1 = Process(target=time_a,args=(i,))
p1.start()
3. 传参的两种方式
from multiprocessing import Process
import time
def time_a(i):
print("Hello,",i)
if __name__ == '__main__':
for i in range(2):
# kwargs 传递的json格式参数,第一个键是对应函数中的 i
p1 = Process(target=time_a,kwargs={'i':"刘老六"})
p2 = Process(target=time_a,args=("吴老五",))
p1.start()
p2.start()
4. 类 的子进程创建方式 及等待子进程执行结束
from multiprocessing import Process
import time
class Pr(Process):
def __init__(self,qq):
# 此处执行父类的init 方法
super().__init__()
self.qq = qq
def run(self):
time.sleep(2)
print(" run ",self.qq)
if __name__ == '__main__':
# 类的传参
p1 = Pr('canshu')
# 此处没有写具体那一个方法 但是start 方法默认就会调用run方法
p1.start()
# join 是等待上面的子进程执行结束后 才继续向下执行
p1.join()
print("回到主进程")
if name == ‘main’: 是必加参数 没有则报错
源自Linux系统则不需要写