num = 0
def add():
global num
for i in range(10_000_000):
num += 1
def sub():
global num
for i in range(10_000_000):
num -= 1
if __name__ == "__main__":
add_t = threading.Thread(target=add)
sub_t = threading.Thread(target=sub)
add_t.start()
sub_t.start()
add_t.join()
sub_t.join()
print("num result : %s" % num)
昨天偶然发现这份代码在 3.11.3 中它居然输出 0 ,一度以为自己写错了,抱着不信邪的态度,又搞了个 Python 3.9.7 的环境试了下,果然还是符合自己预期,输出不为 0
想问下 3.11 版本中是做了什么修改吗?
num, threading, Python, thread