python多线程threading.Lock锁用法实例
本文实例讲述了python多线程threading.Lock锁的用法实例,分享给大家供大家参考。具体分析如下:
python的锁可以独立提取出来
mutex=threading.Lock() #锁的使用 #创建锁 mutex=threading.Lock() #锁定 mutex.acquire([timeout]) #释放 mutex.release()
锁定方法acquire可以有一个超时时间的可选参数timeout。如果设定了timeout,则在超时后通过返回值可以判断是否得到了锁,从而可以进行一些其他的处理。
#!/usr/bin/envpython
#coding=utf-8
importthreading
importtime
classMyThread(threading.Thread):
defrun(self):
globalnum
time.sleep(1)
ifmutex.acquire(1):
num=num+1
msg=self.name+'setnumto'+str(num)
printmsg
mutex.release()
num=0
mutex=threading.Lock()
deftest():
foriinrange(5):
t=MyThread()
t.start()
if__name__=='__main__':
test()
Thread-1setnumto1
Thread-3setnumto2
Thread-4setnumto3
Thread-5setnumto4
Thread-2setnumto5
希望本文所述对大家的Python程序设计有所帮助。