创新互联Python教程:python使用互斥锁处理资源分配
1、threading模块中定义了Lock类,可以实现锁

目前创新互联公司已为上千的企业提供了网站建设、域名、雅安服务器托管、绵阳服务器托管、企业网站设计、临猗网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
创建锁对象: mutex = threading.Lock()
上锁: mutex.acquire()
释放锁: mutex.release()
2、注意
如果这个锁之前是没有上锁的,那么acquire就不会阻塞
如果调用acquire之前这个锁是被其它线程上了锁的,那么acquire就会阻塞,直到这个锁被释放
3、实例
import threading
import time
num = 0
def count_test1():
global num
for i in range(100000):
mutex.acquire()
num += 1
mutex.release()
print("count_test1-->num:%s"%num)
def count_test2():
global num
for i in range(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学习网。
本文题目:创新互联Python教程:python使用互斥锁处理资源分配
分享链接:http://www.jxjierui.cn/article/cojjepp.html


咨询
建站咨询
