• threading.Thread类创建线 Python内置库:threading(多线程) yongqi


    python多线程中Lock()与RLock()锁详解

    资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源的争用,甚至导致死锁

    也可能导致读写混乱

    锁提供如下方法:

    1.Lock.acquire([blocking])

    2.Lock.release()

    3.threading.Lock() 加载线程的锁对象,是一个基本的锁对象,一次只能一个锁定,其余锁请求,需等待锁释放后才能获取

    4.threading.RLock() 多重锁,在同一线程中可用被多次acquire。如果使用RLock,那么acquire和release必须成对出现,

    调用了n次acquire锁请求,则必须调用n次的release才能在线程中释放锁对象

    例如:

    无锁:

    # coding=utf8
    import threading
    import time
    
    num = 0
    
    
    def sum_num(i):
        global num
        time.sleep(1)
        num += i
        print(num)
    
    
    print('%s thread start!' % (time.ctime()))
    
    
    try:
        for i in range(6):
            t = threading.Thread(target=sum_num, args=(i,))
            t.start()
    
    except KeyboardInterrupt as e:
        print("you stop the threading")
    
    print('%s thread end!' % (time.ctime()))

    学习网址:

    https://www.cnblogs.com/guyuyun/p/11185832.html

  • 相关阅读:
    shell练习题4
    shell练习题3
    shell练习题2
    shell练习题1
    Docker入门
    自动化运维之ansible
    自动化运维之Saltstack
    代码管理平台
    非关系统型数据库-mangodb
    2018-08-22 第三十五课
  • 原文地址:https://www.cnblogs.com/gina11/p/16809691.html
Copyright © 2020-2023  润新知