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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。