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如何給函數添加互斥鎖”的全部內容了,希望對你有所幫助 。

    猜你喜歡