sched
是 Python 的一个内置库,它提供了一个简单的接口来调度和执行各种可调用对象。然而,sched
库本身并不支持多线程。如果你想在多线程环境中使用调度功能,你可以考虑使用 threading
库来创建多个线程,并在每个线程中使用 sched
模块。
这是一个简单的示例,展示了如何在多线程环境中使用 sched
模块:
import threading import sched import time # 创建一个调度器实例 scheduler = sched.scheduler(time.time, time.sleep) # 定义一个可调用对象 def print_time(a="default"): print("From thread {}: {}".format(threading.current_thread().name, time.ctime(time.time()))) # 在多个线程中使用调度器 def run_scheduler(): for i in range(5): scheduler.enterabs(time.time() + i, 1, print_time) scheduler.run() # 创建并启动线程 threads = [] for i in range(3): thread = threading.Thread(target=run_scheduler, name="Thread-{}".format(i)) threads.append(thread) thread.start() # 等待所有线程完成 for thread in threads: thread.join()
在这个示例中,我们创建了三个线程,每个线程都运行 run_scheduler
函数。run_scheduler
函数使用 sched
模块安排五个 print_time
函数的调用。请注意,由于 sched
模块不是线程安全的,因此我们需要确保在每个线程中使用独立的调度器实例。