线程同步
保证同一时刻只能有一个线程去操作全局变量同步:就是协同步调按预定的先后次序进行运行
比如如:你说完,我再说,好比现实生活中的对讲机
线程同步的方式
1.线程等待(join)
2.互斥锁:对共享数据进行锁定,保证同一时刻只有一个线程去操作
注意:互斥锁是多个线程一起去抢,抢到锁的线程先执行(谁先抢到不知道),没有抢到锁的线程需要等待,等互斥锁使用完释放后,其它等待的线程再去抢这个锁.
互斥锁的使用步骤:
# 创建锁
mutex = threading.Lock()
# 上锁
mutex.acquire()
#这里编写代码保证同一时刻只能有一个线程去操作,对共享数据进行锁定
# 排放锁
mutex.release()
注意点:
acquire和 release方法之间的代码同一时刻只能有一个线程去操作
如果在调用 acquire方法的时候其他线程已经使用了这个互斥锁,那么此时 acquire方法会堵塞,直到这个互斥锁释放后才能再次上锁。
网友评论