【发布时间】:2017-06-29 18:22:29
【问题描述】:
我已经浏览了time.sleep()hang/delays 上的相关主题,但还没有找到答案。因此,将问题与我看到的问题一起发布。
我无权访问完整的代码。这是我可以访问并看到问题的代码 sn-p:
def my_debug(self, msg):
logging.debug(msg, extra={'threadname':threading.currentThread().name})
while True:
next = time.time() + INTERVAL # INTERVAL = 5
my_debug("Triggering event")
# some code
# some more code
sleep_time = max(next - time.time(), 0)
my_debug("Sleeping for %d sec" % sleep_time)
time.sleep(sleep_time)
这会产生:
2017-01-11 00:08:03 DEBUG MainThread Sleeping for 4 sec
2017-01-11 00:08:21 DEBUG MainThread Triggering event
显然,还有其他线程,while循环在MainThread中执行。 time.sleep 应该休眠 4 秒,而最终等待 18 秒。
我正在寻找可能导致这种行为的原因/场景。
任何帮助/指针将不胜感激。
【问题讨论】:
标签: python multithreading python-2.7 sleep