如何为Timer线程命名?

时间:2016-02-16 08:35:00

标签: python timer python-multithreading

我使用一个重复的python计时器线程,并希望给它一个名字。目前,python为每个新线程提供名称Thread-<number>,并在每个新计时器启动时递增该数字。我希望这个名字保持不变。基本的Thread类支持命名Timer s,但是不支持:

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *,
                       daemon=None)

注意 name=None属性,Timer中不存在。

class threading.Timer(interval, function, args=None, kwargs=None)

关于如何给Timer命名的任何想法?我想我可以派生出我自己的Timer类并添加name,但我不认为python解释器会把它作为线程的名字来选择......

2 个答案:

答案 0 :(得分:3)

TimersThread子类,它们具有名称,因此您可以通过仅为其分配值{{1}来为创建之后的分配自定义名称} property - 所以name构造函数不接受允许这个的参数并不重要。

如果你这么做了,你可以编写一个相对简单的实用函数,自动为你做这个(除了派生你自己的Timer子类,它与实际代码的行数相同):

NamedTimer(_Timer)

答案 1 :(得分:0)

我查找了相同的信息并登陆了这里。我发现这样做的一种方法是:

timer = Timer(interval, function)
timer.setName('AnyTimerName')