python同步锁
# 锁通常被用来实现对共享资源的[同步]访问。 # 为每一个共享资源创建一个Lock对象, # 当你需要访问该资源时,调用acquire方法来获取锁对象(如果其它线程已经获得了该锁,则当前线程需等待其被释放), # 待资源访问完后,再调用release方法释放锁: import time import threading def addNum(): global num #在每个线程中都获取这个全局变量 #num-=1 # 获得锁锁定 lock.acquire() temp=num time.sleep(0.001) num =temp-1 # 对此公共变量进行-1操作 lock.release() # 释放锁,让别的线程继续用 num = 100 #设定一个共享变量 thread_list = [] # 增加线程同步锁 lock = threading.Lock() for i in range(100): t = threading.Thread(target=addNum) t.start() thread_list.append(t) for t in thread_list: #等待所有线程执行完毕 t.join() print('Result: ', num)