# ### lock 线程锁,用来保证线程数据安全from threading import Thread,Lock
n =0deffunc1(lock):global n
for i inrange(1000000):
lock.acquire()# 写法一
n -=1
lock.release()deffunc2(lock):global n
for i inrange(1000000):# 写法二with lock:
n +=1if __name__ =="__main__":# 创建一把锁
lock = Lock()
lst =[]for i inrange(10):# 10个线程专门负责加1
t1 = Thread(target=func1,args=(lock,))# 10个线程专门负责减1
t2 = Thread(target=func2,args=(lock,))
t1.start()
t2.start()
lst.append(t1)
lst.append(t2)for i in lst:
i.join()print("主线程执行结束 ... ")print(n)