python使用互斥鎖處理資源分配
1、threading模塊中定義了Lock類,可以實現鎖
創建鎖對象:mutex=threading.Lock()
上鎖:mutex.acquire()
釋放鎖:mutex.release()
2、注意
如果這個鎖之前是沒有上鎖的,那么acquire就不會阻塞
如果調用acquire之前這個鎖是被其它線程上了鎖的,那么acquire就會阻塞,直到這個鎖被釋放
3、實例
importthreading
importtime
num=0
defcount_test1():
globalnum
foriinrange(100000):
mutex.acquire()
num+=1
mutex.release()
print("count_test1-->num:%s"%num)
defcount_test2():
globalnum
foriinrange(100000):
mutex.acquire()
num+=1
mutex.release()
print("count_test2-->num:%s"%num)
mutex=threading.Lock()
t1=threading.Thread(target=count_test1)
t2=threading.Thread(target=count_test2)
t1.start()
t2.start()
t1.join()
t2.join()
print("最終的num:%s"%num)
以上就是python使用互斥鎖處理資源分配,希望能對大家有所幫助,更多Python學習教程請關注IT培訓機構:千鋒教育。