导语:
本文主要介绍了关于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:一行代码,你可以制作自己的二维码12/07
- ♥ 学习python3适合看什么书12/23
- ♥ 如何用python写一个猜谜游戏?10/28
- ♥ 使用 Python 进行函数式编程11/14
- ♥ python3 中的 lambda 函数是什么?如何使用?12/03
- ♥ python如何判断字符串的编码09/29
内容反馈