线程为什么要有锁:
+= 、-= 赋值操作数据不安全(要经过取值、计算、放回值,3部操作)
pop 、append 都是数据安全的(只有添加和删除,一次操作)
队列也是数据安全的
1、同步锁
import os, time from threading import Thread def work(): global n temp = n time.sleep(0.1) n = temp - 1 if __name__ == '__main__': n = 100 l = [] for i in range(100): p = Thread(target=work) p.start() l.append(p) for p in l: p.join() print(n) # 结果可能为99