示例代码:
import sched
import time
s = sched.scheduler(time.time, time.sleep)
def task():
print("task executed")
s.enter(10, 1, task, ()) # 在10秒后执行任务
s.enter(20, 1, task, ()) # 在20秒后执行任务
s.run() # 开始执行任务调度
示例代码:
import threading
import sched
import time
lock = threading.Lock()
def worker(scheduler):
with lock:
scheduler.run()
s1 = sched.scheduler(time.time, time.sleep)
s1.enter(10, 1, lambda: print("task1 executed"), ())
s1.enter(20, 1, lambda: print("task2 executed"), ())
s2 = sched.scheduler(time.time, time.sleep)
s2.enter(5, 1, lambda: print("task3 executed"), ())
s2.enter(15, 1, lambda: print("task4 executed"), ())
t1 = threading.Thread(target=worker, args=(s1,))
t2 = threading.Thread(target=worker, args=(s2,))
t1.start()
t2.start()
t1.join()
t2.join()
在这个示例代码中,我们创建了两个调度器s1和s2,在两个不同的线程t1和t2中运行。worker
函数在每个线程中被调用,并使用锁保持同步。当线程启动时,调度器