我在编写在进程终止期间保存一些值的逻辑时遇到的一件令人惊讶的事情对我来说有点奇怪。编写一个玩具示例程序来显示问题。
import multiprocessing
import time
class A(multiprocessing.Process):
def __init__(self):
self.till = 0
super(A, self).__init__()
def run(self):
i = 0
while True:
print(i)
i += 1
self.till = i
time.sleep(1)
def terminate(self):
print("Terminating : {}".format(self.till))
super(A, self).terminate()
if __name__ == "__main__":
obj = A()
obj.start()
time.sleep(5)
obj.terminate()
上述程序的输出是 -
0
1
2
3
4
Terminating : 0
为什么终止()不打印出 4?我缺少什么吗?
拉风的咖菲猫
白猪掌柜的
相关分类