Python多线程的LOCK对象方法

2020-05-29  本文已影响0人  大海龟啦啦啦

LOCK对象方法

在多线程中使用lock可以让多个线程在共享资源的时候不会“乱”。锁有两种状态:锁定和未锁定。而且也只有两个函数;获取锁和释放锁,当多线程争夺锁的时候,允许第一个获得锁的线程进入运算区,并执行代码,之后想要进入的代码都被暂停,当第一个线程执行结束,退出运算区,释放锁,此时其他线程进入运算区,不过被堵在运算区外的线程时无序的。

LOCK对象方法 描述
acquire() 获取锁
release() 释放锁
import threading

value = 0
lock = threading.Lock() # 创建锁示例

def add_value():
    global value
    lock.acquire() # 获得锁
    for x in range(10000000):
        value += 1
    lock.release() # 释放锁
    print('value:',value)

def main():
    threads = []
    for i in range(0,2):
        t = threading.Thread(target=add_value)
        threads.append(t)

    for i in range(3):
        threads[i].start()

if __name__ == '__main__':
    main()

上一篇 下一篇

猜你喜欢

热点阅读