使用队列和线程进行时间管理

时间:2014-06-19 19:25:04

标签: python multithreading

我有一个对象可以被线程使用一段时间然后我必须在预定义的时间段内停止使用它(比如X秒的驱逐)。然后线程可以再次使用它。

我想知道如何实现这一点, 我在考虑FIFO队列,它为每个对象保存键,值对。 对象作为键,它可以作为值再次开始工作的时间段。 当对象必须停止工作时,它将被添加到队列中。 然后我必须检查每X秒是否可以使用队列中的第一个元素,这就是为什么我认为这不是解决这个问题的好方法。

实现此目的的最佳方法是什么? 我使用python,所以python中的例子将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:0)

考虑sched模块。它允许您提交将来运行的作业。

docs中的示例:

>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time(): print "From print_time", time.time()
...
>>> def print_some_times():
...     print time.time()
...     s.enter(5, 1, print_time, ())
...     s.enter(10, 1, print_time, ())
...     s.run()
...     print time.time()
...
>>> print_some_times()
930343690.257
From print_time 930343695.274
From print_time 930343700.273
930343700.276