一. 解析
如果某一些線程,你不希望交替執行,而是想一個線程做完再去做其他的線程,那就需要用到鎖
二. 代碼
import threading
def job1():
global A, lock
lock.acquire() # 加鎖
for i in range(10):
A += 1
print('job1', A)
lock.release() # 釋放鎖 這樣只有這個做完釋放之後纔會去做job2的東西
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()
A = 0
t1 = threading.Thread(target=job1)
t2 = threading.Thread(target=job2)
t1.start()
t2.start()
t1.join()
t2.join()