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使用互斥锁处理资源分配 的全部内容, 来源链接: utcz.com/z/543398.html

回到顶部