私は3つのスレッドを持つプログラムを持っています。私はそれらを次のように呼びます:
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 のインスタンスが一度に 1 つしか実行されないようにする必要もあります。
編集
私が考えることができる唯一の解決策は、各スレッドにロックファイルを配置することです。のようなもの
if os.path.exists(lockfile):
EXIT THREAD
f=open(lockfile,'w')
f.write('lock')
f.close()
THREAD_STUFF
os.remove(lockfile)
しかし、何らかの理由でプログラムが終了した可能性があり、スレッドがまったく起動しない可能性があるため、どういうわけかそれは私にはきれいな解決策のようには見えません。