Event
和Lock
在这些场景中做同样的事情吗?
class MyThread1(threading.Thread):
def __init__(event):
self.event = event
def run(self):
self.event.wait()
# do something
self.event.clear()
另一:
class MyThread2(threading.Thread):
def __init__(lock):
self.lock = lock
def run(self):
self.lock.acquire()
# do something
self.lock.release()
答案 0 :(得分:5)
如果您等待某个事件,执行将停止,直到event.set()
发生
event.wait() # waits for event.set()
如果已经获得锁定,则获取锁定仅会停止
lock.acquire() # first time: returns true
lock.acquire() # second time: stalls until lock.release()
两个类都有不同的用例。 This article将帮助您了解差异。
答案 1 :(得分:2)
实际上,我发现python中的事件与锁定之间的区别是:
还有更多区别,但是以上对我来说最明显。