Python线程和队列

时间:2019-10-11 14:25:36

标签: python-3.x multithreading

我是python编程的新手,如果这个问题很愚蠢,对不起...

我编写了一个脚本,每5秒检查2台服务器的状态,并通过以下方式调用该函数:

while1 :
   f1 = threading.Thread(target=func1)
   f1.start()

   f2 = threading.Thread(target=func2)
   f2.start()

   time.sleep(5)

这样,一切正常:2个线程同时开始,并以不同的持续时间结束,但始终在5秒以内。 如果以前的运行(总是f1)没有完成,我想避免其中一个线程(例如f1)再次启动。这可能吗? 谢谢

1 个答案:

答案 0 :(得分:0)

尝试在线查看线程功能。我设法找到了.is_alive(),看起来像是您所追求的。

例如;

f1 = None
f2 = None

while1 :

   #If f1 is not a thread or it is not an active thread...
   if (f1 == None or not f1.is_alive()):
      f1 = threading.Thread(target=func1)
      f1.start()

   f2 = threading.Thread(target=func2)
   f2.start()

   time.sleep(5)