Python多线程笔记(二)

原语锁(互斥锁)是一个同步原语,状态是"已锁定"或者"未锁定"之一.两个方法acquire()和release()用于修改锁的状态.如果状态为已锁定,
尝试获取锁将被阻塞,直到锁被释放为止.如果有多个线程等待获取锁,当锁被释放时,只有一个线程能获取它,等待线程获得锁的顺序没有定义.

使用下面的构造函数可以创建新的Lock实例: Lock()
创建新的Lock对象,初始状态为未锁定

Lock实例lock支持一下方法

lock.acquire([blocking])
获取锁,如果有必要,需要阻塞到锁释放为止.如果提供blocking参数并将它设为False,当无法获取锁时立即返回False,
如果成功获取锁则返回True.

lock.release()
释放一个锁.当锁处于未锁定状态时,或者从与原本调用acquire()方法的线程不同的线程调用此方法,将出现错误

# 未加锁,Windows下运行不会出现混乱,在Linux下运行就会发行结果出现混乱 import threading import time num = 0 def show(): global num time.sleep(3) num += 1 print(num) for i in range(10): t = threading.Thread(target=show) t.start() print('thread stop')

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwpjp.html