python使用互斥锁处理资源分配
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培训机构:千锋教育。
相关推荐HOT
更多>>python函数标注是什么
python函数标注是什么在参数的使用方法中,还有一种解包的情况是需要我们掌握的。比如,将列表或者字典的值转换为函数的参数,就需要用到参数解...详情>>
2023-11-14 14:13:35python正负索引的使用
python正负索引的使用本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明使用正索引(从左至右)、负索引(从右至左)访问元素,时...详情>>
2023-11-14 13:45:04python垃圾回收的机制过程
python垃圾回收的机制过程本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、步骤(1)收集所有容器对象(list,dict,tuple,customClas...详情>>
2023-11-14 13:05:15pythontry语句的执行原理
pythontry语句的执行原理1、原理分析(1)执行try子句(try和except关键字之间的多行语句)。(2)如果没有异常发生,则跳过except子句并完成try语句...详情>>
2023-11-14 09:37:35