我正在尋找一個類(從threading.Thread中分類),它是從一個程序中的多個位置初始化並開始的。我想避免的是,如果線程已經從別的地方跑,如果計劃中的其他地方改掉啓動它創建一個'singleton'線程 - 如何在同一時間最多隻有一個線程實例
t= somemodule.TheThread(some,args)
t.start()
程序可以進行(但線程只啓動,如果在同一個線程ISN」已經在這裏或其他地方跑過了)。
我可以想到幾個不是很優雅的方法來設置標誌,但必須有一個很好的方式來處理這個問題。我用decorator查看單身人士類型模式或覆蓋新,但主要問題是,如果我保持相同的實例是你不能(我知道)調用不止一次啓動,即使線程已完成。
我想過在另一個對象中創建線程對象,它可以檢查當前線程是否仍在運行,但我無法確定如何保持線程安全。
任何人有任何想法?
如何將它保存在模塊中?第一次調用'import'時,模塊中的代碼將只運行一次。 – wim 2012-02-16 00:04:45