|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- from multiprocessing import Process
- import time
- class MyProcess(Process):
- def __init__(self,loop):
- Process.__init__(self)
- self.loop = loop
- def run(self):
- for count in range(self.loop):
- time.sleep(1)
- print(f'Pid:{self.pid} LoopCount: {count}')
- if __name__ == '__main__':
- for i in range(2,5):
- p = MyProcess(i)
- p.start()
复制代码
有没有老师能给我解释一下这段代码的逻辑呀 ,我理不太清
执行结果如下
- Pid:93640 LoopCount: 0
- Pid:95944 LoopCount: 0
- Pid:79292 LoopCount: 0
- Pid:93640 LoopCount: 1
- Pid:95944 LoopCount: 1
- Pid:79292 LoopCount: 1
- Pid:95944 LoopCount: 2
- Pid:79292 LoopCount: 2
- Pid:79292 LoopCount: 3
复制代码
1)因为没有join,多进程并行
2)3个进程一起开始循环,从0开始:
p1:0,1
p2:0,1,2
p3: 0,1,2,3
3) 每轮循环,大家各自都sleep 1秒,一起完成,所以一起打印 ,就都是0.
4)想要实现你说的效果,可以去掉sleep,大概率会出现。或者p.start()后加上p.join()
|
|