Python中互斥锁是什么?Python如何给函数添加互斥锁

在python的程序之中,锁是直接的作用在线程以及进程上面的 。而所也会分为很多不同的类型、死锁、同步锁、互斥锁、可重入锁等等 。而本篇文章要来给大家分享的内容就是python互斥锁的基本概念,以及它在python中是如何给函数添加互斥锁的 。

Python中互斥锁是什么?Python如何给函数添加互斥锁

文章插图
(1)互斥锁是作用在python中某一个线程之上的,而在python内每一个函数在执行的时候就相当于是一个线程,所以互斥锁需要添加到python的函数之中 。
【Python中互斥锁是什么?Python如何给函数添加互斥锁】而互斥锁的作用和概念从名字上就可以看出来,当它作用在线程上的时候该线程就会被锁定 。在锁定的过程中该线程所使用的资源无法被其他线程访问,只有等待它结束后释放资源才可以去使用它 。所以互斥锁的实际作用就是保证了所占用资源的正确性和安全性,在数据处理上经常使用 。
(2)那么根据上面python互斥锁的概念就就可以知道python如何给函数添加互斥锁了,python对线程操作需要用到threading模块,创建互斥锁也是使用它,详细代码如下所示:
import threadingdef test1(num):  mutex.acquire()  print(num+1)def test2(num):  mutex.acquire()  print(num+5)mutex = threading.Lock()nums = 1000t1 = threading.Thread(target=test1, args=(nums,))t2 = threading.Thread(target=test2, args=(nums,))t1.start()t2.start()上面这一段代码就是创建了互斥锁并将其给添加到了两个函数之中,然后使用两个线程去调用这两个函数 。那么函数所返回出来结果就是先去执行了第一个函数,然后再去执行了第二个函数 。
而在这个过程之中变量nums的值发生了两次变化,第一次变化是在第一个函数中所造成的 。因为都是在主线程中去执行,所以两个线程实际上是同时执行的 。但是有互斥锁的存在,第二个函数必须等第一个函数执行完毕之后才能够使用它占用的资源nums变量 。
以上就是关于“Python中互斥锁是什么?Python如何给函数添加互斥锁”的全部内容了,希望对你有所帮助 。

    推荐阅读