我正在寻找一个类(从threading.Thread中分类),它是从一个程序中的多个位置初始化并开始的。我想避免的是,如果线程已经从别的地方跑,如果计划中的其他地方改掉启动它创建一个'singleton'线程 - 如何在同一时间最多只有一个线程实例
t= somemodule.TheThread(some,args)
t.start()
程序可以进行(但线程只启动,如果在同一个线程ISN”已经在这里或其他地方跑过了)。
我可以想到几个不是很优雅的方法来设置标志,但必须有一个很好的方式来处理这个问题。我用decorator查看单身人士类型模式或覆盖新,但主要问题是,如果我保持相同的实例是你不能(我知道)调用不止一次启动,即使线程已完成。
我想过在另一个对象中创建线程对象,它可以检查当前线程是否仍在运行,但我无法确定如何保持线程安全。
任何人有任何想法?
如何将它保存在模块中?第一次调用'import'时,模块中的代码将只运行一次。 – wim 2012-02-16 00:04:45