本文實例講述了python多線程threading.Lock鎖的用法實例,分享給大家供大家參考。具體分析如下:
python的鎖可以獨(dú)立提取出來
復(fù)制代碼
代碼如下:
mutex = threading.Lock()
#鎖的使用
#創(chuàng)建鎖
mutex = threading.Lock()
#鎖定
mutex.acquire([timeout])
#釋放
mutex.release()
#鎖的使用
#創(chuàng)建鎖
mutex = threading.Lock()
#鎖定
mutex.acquire([timeout])
#釋放
mutex.release()
鎖定方法acquire可以有一個超時時間的可選參數(shù)timeout。如果設(shè)定了timeout,則在超時后通過返回值可以判斷是否得到了鎖,從而可以進(jìn)行一些其他的處理。
復(fù)制代碼
代碼如下:
#!/usr/bin/env python
#coding=utf-8
import threading
import time
?
class MyThread(threading.Thread):
??? def run(self):
??????? global num
??????? time.sleep(1)
?
??????? if mutex.acquire(1):?
??????????? num = num+1
??????????? msg = self.name+' set num to '+str(num)
??????????? print msg
??????????? mutex.release()
num = 0
mutex = threading.Lock()
def test():
??? for i in range(5):
??????? t = MyThread()
??????? t.start()
if __name__ == '__main__':
??? test()
Thread-1 set num to 1
Thread-3 set num to 2
Thread-4 set num to 3
Thread-5 set num to 4
Thread-2 set num to 5
#coding=utf-8
import threading
import time
?
class MyThread(threading.Thread):
??? def run(self):
??????? global num
??????? time.sleep(1)
?
??????? if mutex.acquire(1):?
??????????? num = num+1
??????????? msg = self.name+' set num to '+str(num)
??????????? print msg
??????????? mutex.release()
num = 0
mutex = threading.Lock()
def test():
??? for i in range(5):
??????? t = MyThread()
??????? t.start()
if __name__ == '__main__':
??? test()
Thread-1 set num to 1
Thread-3 set num to 2
Thread-4 set num to 3
Thread-5 set num to 4
Thread-2 set num to 5
希望本文所述對大家的Python程序設(shè)計有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
