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()
网友评论