我有一个带有三个线程的程序。我这样称呼他们:
if __name__ == "__main__":
while True:
try:
t1().start()
except:
log.debug('Trouble with t1 synchronizer')
try:
t2().start()
except:
log.debug('Trouble with t2 synchronizer')
try:
t3().start()
except:
log.debug('Trouble with t3 synchronizer')
我想让这 3 个线程一直运行。但我还想确保 t1、t2 和 t3 每次只有一个实例在运行。
编辑
我能想到的唯一解决方案是在每个线程中都有锁定文件。类似的东西
if os.path.exists(lockfile):
EXIT THREAD
f=open(lockfile,'w')
f.write('lock')
f.close()
THREAD_STUFF
os.remove(lockfile)
但不知何故,它对我来说似乎不是一个干净的解决方案,因为程序可能由于某种原因退出并且线程可能根本无法启动。