知行编程网知行编程网  2022-12-23 19:30 知行编程网 隐藏边栏  4 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于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学习网。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享