千锋教育-做有情怀、有良心、有品质的职业教育机构

python使用互斥锁处理资源分配

来源:千锋教育
发布时间:2023-11-13 00:40:56
分享

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培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python内置类型性能有哪些? python中内置类型性能有哪些?1、timeit模块timeit模块用于测试和测量一小段Python代码的执行速度的类。classtimeit.Timer(stmt=‘pass’,setup=‘pa
  • python如何配置Logging处理器 python中如何配置Logging处理器处理器对象负责分配适当的日志消息(基于日志消息的严重性)到处理器指定的目标。Logger对象可以使用addHandler()方法将零个或多个处理器对象添加到自
  • python如何在静态图像中人脸检测? python中如何在静态图像中人脸检测?1、使用OpenCV进行人脸检测加载图像并检测人脸,在原始图像的人脸周围绘制矩形框。#人脸检测importcv2ascvdefface_detect():#将图
  • 怎样在python中定义非闭包 怎样在python中定义非闭包1、说明(1)非封闭包装方式定义了Averager这一类。然后,在初始化方法中,定义了数组series,以保存输入的数值。(2)接着使用__call__这样的实例对象可以
  • python在列表中和列表末尾添加元素的方法 python在列表中和列表末尾添加元素的方法1、在列表中添加元素:insert()方法insert()方法可以在列表中的任何一个位置添加新的元素。注意:使用insert()方法需要指定新元素的索引和值
  • python中序列化JSON python中序列化JSON1、假设正在使用一个内存中的Python对象,它看起来有点像这样:data={"president":{"name":"ZaphodBeeblebrox","species