我有一个守护程序线程,它以指定的间隔唤醒以执行某项任务。现在我需要再添加两个任务给线程&这些任务有自己的间隔。像
这样的东西所以我基本上需要提出一个睡眠逻辑来确保所有任务都在正确的时间完成。这样做的最佳方式是什么? 我的想法是,每个任务执行的时间是算术级数,所以我需要结合每个任务对应的AP。使用该系列来计算我需要睡眠的时间间隔以及要执行的下一个任务。这种方法有意义吗?
答案 0 :(得分:0)
你可以这样做:
now = time_in_seconds()
time_since_task1 = x - (now % x)
time_since_task2 = y - (now % y)
time_since_task3 = z - (now % z)
shortest_interval = min(min(time_since_task1, time_since_task2), time_since_task3)
sleep(shortest_interval)
然后你可以检查“new now
”是否等于0 mod x,y,z并执行必要的任务。