time.sleep() 会停止所有执行吗?

Does time.sleep() stop all executions?

在我的复杂 python 程序中,当它是 运行 时,我有一段代码每 3 秒执行一次,它打印程序的进度作为已完成的执行百分比,如下所示:

while len(dequeueingFinishedList)!=10:
    print(str(len(masterListCSV_RowsListFinished)/float(len(masterListCSV_RowsList))*100) + "% done.")
    time.sleep(3)

time.sleep() 函数会减慢我的程序吗?我读到睡眠函数暂停执行。如果它减慢了我的程序,是否有更正确的方法每 3 秒向我打印一次进度?

是的,time.sleep 将停止您的程序。

在循环中使用 time.time 并检查三秒后的时间。

from time import time

prev = time()
while True:
    now = time()
    if now - prev > 3:
        print 'report'
        prev = now
    else:
        pass
        # runs

正确的方法是 signal

import signal

def handler(signum, frame):
    print i
    if i>100000000:
        raise Exception("the end")
    else:
        signal.alarm(3)      

signal.signal(signal.SIGALRM, handler)   
signal.alarm(3)     

i=0
while True:
   i+=1

time.sleep(seconds) 将停止在 current 线程上执行。因此,它将在该线程上完全停止您的程序:直到那些秒过去之前不会发生任何其他事情。

这个你不用担心。如果程序使用线程,那么其他线程不应该停止。