首页  >  文章  >  后端开发  >  在 Python 里如何手工进行延迟

在 Python 里如何手工进行延迟

anonymity
anonymity原创
2019-05-27 13:57:425079浏览

我想知道如何在Python脚本中加时间延迟。

import time
time.sleep(5)   # Delays for 5 seconds. You can also use a float value.

这是另一个例子,大约每分钟运行一次:

import timewhile True:
    print("This prints once a minute.")
    time.sleep(60) # Delay for 1 minute (60 seconds).

您可以sleep()在时间模块中使用该功能。它可以采用浮动参数进行亚秒级分辨率。

from time import sleep
sleep(0.1) # Time in seconds.

在 Python 里如何手工进行延迟

在 Python 里如何手工进行延迟?

在一个线程中我建议睡眠功能:

>>> from time import sleep
>>> sleep(4)

这实际上暂停了操作系统调用它的线程的处理,允许其他线程和进程在休眠时执行。

将其用于此目的,或仅仅是为了延迟执行某个功能。例如:

>>> def party_time():
...     print('hooray!')
... 
>>> sleep(3); party_time()
hooray!

打了3秒后打印出来Enter。

使用sleep多个线程和进程的示例

再次,sleep暂停你的线程 – 它使用零处理能力。

为了演示,创建一个这样的脚本(我首先在交互式Python 3.5 shell中尝试过这个,但子进程party_later由于某种原因找不到该函数):

from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
from time import sleep, time
def party_later(kind='', n=''):
    sleep(3)
    return kind + n + ' party time!: ' + __name__
def main():
    with ProcessPoolExecutor() as proc_executor:
        with ThreadPoolExecutor() as thread_executor:
            start_time = time()
            proc_future1 = proc_executor.submit(party_later, kind='proc', n='1')
            proc_future2 = proc_executor.submit(party_later, kind='proc', n='2')
            thread_future1 = thread_executor.submit(party_later, kind='thread', n='1')
            thread_future2 = thread_executor.submit(party_later, kind='thread', n='2')
            for f in as_completed([
              proc_future1, proc_future2, thread_future1, thread_future2,]):
                print(f.result())
            end_time = time()
    print('total time to execute four 3-sec functions:', end_time - start_time)
if __name__ == '__main__':
    main()

此脚本的示例输出:

thread1 party time!: __main__
thread2 party time!: __main__
proc1 party time!: __mp_main__
proc2 party time!: __mp_main__
total time to execute four 3-sec functions: 3.4519670009613037

以上是在 Python 里如何手工进行延迟的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn