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 线程上执行。因此,它将在该线程上完全停止您的程序:直到那些秒过去之前不会发生任何其他事情。
这个你不用担心。如果程序使用线程,那么其他线程不应该停止。
在我的复杂 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 线程上执行。因此,它将在该线程上完全停止您的程序:直到那些秒过去之前不会发生任何其他事情。
这个你不用担心。如果程序使用线程,那么其他线程不应该停止。