1.多线程的执行顺序是无序的
像2个人赛跑,一个先跑一个后跑,但根据每个人跑的速度不一样,跑一半,二者可能跑在一起去了。
2.又因为多线程是共享一个全局变量的,就导致数据容易被弄脏
假如老板让两个员工写两个主题ppt,若这两个人没商量好,都做了同一个主题的ppt,导致不但速度很慢,且这个ppt有2个版本。老板希望的是一人做一个主题,那么怎么让两个人写不同主题的ppt呢?
3.解决方法就是设立个规矩(锁)
当一个线程使用这个数据的时候,为了不让别的线程使用,对这个数据上锁,在处理完后,将其释放
4.glock = threading.Lock() 申明对象 #这是LOCK版本
glock.acquire()上锁
glock.acquire()解锁
!!!!!上锁解锁是很费电脑资源的,所以若只是引用数据而非改写数据是不需要上锁的