linux

如何根据事件停止毫秒sleep

小樊
82
2024-12-28 23:50:10
栏目: 编程语言

要根据事件停止毫秒sleep,您可以使用线程的join()方法

import threading
import time

# 自定义事件类
class Event:
    def __init__(self):
        self.is_set = False

    def set(self):
        self.is_set = True

    def is_set(self):
        return self.is_set

# 事件监听器类
class EventListener:
    def __init__(self, event):
        self.event = event

    def run(self):
        while not self.event.is_set():
            time.sleep(0.1)  # 每0.1秒检查一次事件是否已设置
        print("事件已触发")

# 主程序
def main():
    event = Event()
    listener = EventListener(event)

    # 启动监听器线程
    listener_thread = threading.Thread(target=listener.run)
    listener_thread.start()

    # 模拟执行耗时任务
    time.sleep(5)

    # 设置事件,使监听器停止sleep
    event.set()

    # 等待监听器线程结束
    listener_thread.join()

if __name__ == "__main__":
    main()

在这个示例中,我们创建了一个自定义事件类Event和一个事件监听器类EventListener。事件监听器会不断检查事件是否已设置,如果未设置,则继续等待。当事件被设置时,监听器将停止等待并输出提示信息。

0
看了该问题的人还看了