1. 全局解释器锁,保证同一时间只有一个线程在执行,但是由于它是把数据copy成了两份,所以 只有全局解释器锁的时候,数据加减照样出错了. 2.用户态的锁,保证同一时间,只有一个线程在真真正正地修改数据. 修改数据之前,先加一把锁.修改完了以后,释放锁.修改数据的时候,把程序变成串行的. #主线程启动子线程之后,两者是并行的,相互之间是独立的. import threading,time def run(n): lock.acquire() #获取一把锁 global num #把num声明成全…