首頁  >  文章  >  後端開發  >  在 Python 裡如何手動進行延遲

在 Python 裡如何手動進行延遲

anonymity
anonymity原創
2019-05-27 13:57:425095瀏覽

我想知道如何在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