在Python中使用多个Timers是危险的吗?

时间:2010-10-10 02:20:09

标签: python timer

我正在研究Python 3.1中基于文本的游戏,它将使用计时作为游戏的主要来源。为了有效地做到这一点(而不是检查每个主循环的时间,我当前的方法,这可能是不准确的,如果多人一次玩游戏,则速度很慢)我正在考虑使用Threading.Timer类。让多个计时器同时运行是一件坏事吗?如果是这样,建议使用多少计时器?

例如,用户输入以开始游戏。在游戏开始后的每一秒,它决定是否发生了某些事情,因此每个用户同时玩游戏都有一个Timer(1)。如果发生某些事情,玩家有一定的时间对其作出反应,因此必须为此设置计时器。如果用户反应足够快,该计时器需要结束,它将根据接下来会发生什么来设置新计时器等。

2 个答案:

答案 0 :(得分:3)

我认为在你的情况下使用计时器是一个坏主意。

在python中使用延迟线程将导致更复杂的代码,更低的准确性,并且可能性能更差。基本上,规则是如果你认为你需要线程,你就不会。很少有程序受益于线程的使用。

我不知道你在做什么输入。你引用了多个玩家,我不确定是在单个键盘上还是联网。无论如何,您当前的主循环策略可能是最好的策略。虽然没有看到你的主循环如何操作很难说肯定。

答案 1 :(得分:1)

让多个计时器同时运行应该是绝对安全的。请注意,它可能不会提高性能,因为CPython解释器(标准的Python解释器)使用GIL(全局解释器锁),这使得线程有点......慢。