wait function that uses while

廉价感情. 提交于 2019-12-24 00:44:27

问题


I just wrote a function that looked like this:

def block_for(seconds):
    """Wait at least seconds, this function should not be affected by the computer sleeping."""
    end_time = datetime.datetime.now() + datetime.timedelta(seconds)

    while datetime.datetime.now() < end_time:
        pass

Can anything bad come of this? Should there ideally be something inside the while loop?


回答1:


maybe putting time.sleep(1) in the while loop will require less cycles? Or

def block_for(seconds):
    """Wait at least seconds, this function should not be affected by the computer sleeping."""
    end_time = datetime.datetime.now() + datetime.timedelta(seconds=seconds)

    while datetime.datetime.now() < end_time - datetime.timedelta(seconds=1):
        time.sleep(1)

    while datetime.datetime.now() < end_time:
        pass



回答2:


time.sleep(seconds) seconds does just that without burning through CPU cycles. your loop keeps the CPU fully busy. i do not know for you but i consider this bad.



来源:https://stackoverflow.com/questions/41414525/wait-function-that-uses-while

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!