互斥锁在python中的应用

互斥锁的背景意义

我们知道在一个进程底下的多个线程是可以共享全局变量的,但是有时候这样会造成很多的问题,有可能两个或多个线程在某一时刻抢到了全局变量,这时候一起执行可能会让数据出错,此时,我们引出了互斥锁这个概念,当一个线程拿到了这个数据,会立刻上锁,此时另一个线程会无法操作这个全局变量,保证了数据的准确性。
在python中,我们可以通过threading这个模块来实现代码如下:

import threading

#用这个模块下的lock函数
lock = threading.lock()

#上锁代码
lock.acquire()

#释放锁代码
lock.release()

死锁

当某个线程拿到任务后出错执行不了释放锁,那么此时就造成后面的线程一直在等待任务,这样就造成了死锁,我们可以通过在某些可能出错的代码后面放上释放锁代码,来解决死锁问题

猜你喜欢

转载自blog.csdn.net/weixin_48445640/article/details/108874857