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.gawzjz.com/qtweb/news17/179567.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联