技术文章 > Python技术 >  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文件的常见的操作有哪些?
  python处理绝对路径和相对路径函数有哪些?
  python中包初始化有什么好处?
  python绝对和相对导入的介绍
  python如何将相对路径转换为绝对路径?
  python多线程的优缺点总结
  python检测给定的路径是否存在的方法
相关视频章节
  CSS盒子模型-盒子模型应用
  CSS盒子模型-外边距合并
  CSS盒子模型-外边距
  CSS盒子模型-边框
  CSS盒子模型-内边距
作者信息
推荐视频
视频教程分类