import threading
def job1():
global A,lock
lock.acquire() # 锁住
for i in range(10):
A += 1
print('job1', A)
lock.release() # 开锁
def job2():
global A,lock
lock.acquire()
for i in range(10):
A += 10
print('job2', A)
lock.release()
if __name__=='__main__':
lock = threading.Lock() # 多线程中lock锁
A = 0
t1 = threading.Thread(target=job1)
t2 = threading.Thread(target=job2)
t1.start()
t2.start()
t1.join()
t2.join()
lock锁 代码是最好的阐述方式