在执行某些线程操作时,需要锁定相关资源 只允许当前线程对这些资源进行操作
以下程序目标是将num 从100每次减1减到0,当不加锁时输出为99,加锁后输出为0
import time,threading r = threading.Lock() #定义锁 def addNum(): global num r.acquire() #加锁 tmp = num time.sleep(0.000001) num=tmp-1 r.release() #释放锁 num = 100 thread_list = [] for i in range(100): t = threading.Thread(target=addNum) t.start() thread_list.append(t) for t in thread_list: t.join() print('final num', num)