1
time.sleep()
관련 스레드를 중단했지만 지연되었지만 아직 답을 찾지 못했습니다. 그러므로 내가 보는 이슈에 질문을 게시하십시오.python time.sleep이 예상보다 오래 걸립니다. (멀티 스레드)
전체 코드에 액세스 할 수 없습니다.
이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 초 동안 기다리는 것으로 끝납니다.
이 문제를 일으킬 수있는 이유와 시나리오를 찾고 있습니다.
모든 도움말/포인터는 정말 감사하겠습니다.
코드가 이미 실행되었을 것입니다. 로그를 보면 두 로그 라인이 연속적이며 (마지막 라인의 루프와 두 번째 루프 라인) 잠시 사이에 잠 들어 있습니다. – Sharad
로그 파일을 몇 줄 더 추가 할 수 있습니까? –
나는 (내가 제한된 접근을 언급했듯이) 지금은 그것을 가지고 있지 않습니다. 좀 더 자세한 정보를 수집하려고합니다. – Sharad