Event是Python中的事件对象,它可以让线程在某些事件发生时等待,并在事件发生时唤醒其他线程。Event有两个基本操作:set()和wait()。set()用于设置事件为“已发生”状态,wait()用于等待事件发生并进入阻塞状态。
下面的示例展示了如何使用Event来实现一个简单的信号量:
import threading
class Semaphore(object):
def __init__(self, value):
self.event = threading.Event()
self.count = value
def acquire(self):
while True:
if self.count > 0:
self.count -= 1
return
else:
self.event.wait()
def release(self):
self.count += 1
self.event.set()
在上面的示例中,我们使用了一个Event来等待资源可用,并在资源可用时唤醒等待的线程。当资源不可用时,线程会进入阻塞状态,直到资源可用时才会被唤醒。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。