• 技术文章 >Python技术 >Python基础教程

    python使用互斥锁处理资源分配

    小妮浅浅小妮浅浅2021-02-22 16:55:29原创2529

    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如何将相对路径转换为绝对路径?• python检测给定的路径是否存在的方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网