import threading
g_num = 0
def test1(num):
global g_num
for i in range(num):
g_num += 1
print(g_num)
print("---test1---g_num=%d"%g_num)
def test2(num):
global g_num
for i in range(num):
g_num += 1
print(g_num)
print("---test2---g_num=%d"%g_num)
# 创建2个线程,让他们各自对g_num加1000000次
p1 = threading.Thread(target=test1, args=(10000,))
p1.start()
p2 = threading.Thread(target=test2, args=(10000,))
p2.start()
p1.join()
p2.join()
print("2个线程对同一个全局变量操作之后的最终结果是:%s" % g_num)
结果都是正确的,但是我去掉了每个循环中的print,结果就有问题了。我想知道这是为什么。本来是为了学习threading.Lock()的,结果发现没上锁结果也没问题。