互斥锁是什么
1.互斥锁是对共享数据进行锁定,保证同一时间只能有一个线程去操作
互斥锁的使用
1.创建锁:
lock=threading.Lock()
2.上锁
lock.acquire()
3.释放锁
lock.release()
注意:
1.互斥锁保证同一时间只有一个线程操作,保证共享数据不出现问题
2.好处是确保某段代码由线程从头到尾去执行
3.坏处是使多任务变成单任务影响效率,使用不当容易出现死锁
死锁是什么
1.死锁就是互斥锁使用不当,一个线程运行无法结束另一边运行无法开始,造成线程无法继续运行的死锁情况.
线程等待
1.除了使用互斥锁之外也可以使用线程等待解决资源争夺问题
2.线程等待格式:子线程.join()