English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A função sleep() suspende (espera) a execução da thread atual por um número de segundos especificado.
Python tem um módulo chamadotimeO módulo, que fornece algumas funções úteis para lidar com tarefas relacionadas ao tempo. Uma das funções mais comuns é sleep().
sleep()函数将当前线程的执行暂停给定的秒数。
import time print("Imprimir imediatamente") time.sleep(2.4) print("2.4segundos após imprimir ")
O funcionamento do programa é o seguinte:
"Imprimir imediatamente" foi impresso
Pausa (atraso) de execução2.4segundos após.
Imprimir a saída"2.4segundos após imprimir" .
Do exemplo acima, podemos ver que o sleep() aceita números de ponto flutuante como parâmetro.
No Python 3.5Antes,o tempo de pausa real pode ser menor do que o parâmetro especificado para a função time().
De Python 3.5Início,o tempo de pausa será pelo menos o número de segundos especificado.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
No programa acima, calculamos e imprimimos o tempo infinitowhile loopo tempo local atual dentro . Em seguida, o programa espera1segundos. Da mesma forma, será calculado e impresso o tempo local atual. Este processo continua.
当您运行程序时,输出将类似于:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
Esta é uma versão melhorada e ligeiramente modificada do programa acima.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result, end="", flush=True) print("\r", end="", flush=True) time.sleep(1)
Antes de discutir sobre programas multithreaded sleep(), vamos falar sobre processos e threads.
计算机程序是指令的集合。进程就是这些指令的执行。
线程是进程的子集。一个进程可以具有一个或多个线程。
本文上面的所有程序都是单线程程序。这是一个多线程Python程序的示例。
import threading def print_hello_three_times(): for i in range(3) print("Hello") def print_hi_three_times(): for i in range(3) print("Hi") t1 = threading.Thread(target=print_hello_three_times) t2 = threading.Thread(target=print_hi_three_times) t1.start() t2.start()
当您运行程序时,输出将类似于:
Hello Hello Hi Hello Hi Hi
上面的程序有两个线程t1和t2。这些线程使用t1.start()和t2.start()语句运行。
请注意,t1和t2同时运行,您可能会获得不同的输出。
sleep()函数将当前线程的执行暂停给定的秒数。
如果是单线程程序,sleep()会中止线程和进程的执行。 但是,该函数在多线程程序中挂起线程而不是整个进程。
import threading import time def print_hello(): for i in range(4) time.sleep(0.5) print("Hello") def print_hi(): for i in range(4) time.sleep(0.7) print("Hi") t1 = threading.Thread(target=print_hello) t2 = threading.Thread(target=print_hi) t1.start() t2.start()
O programa acima tem duas threads. Nós já usamos essas duas threads time.sleep(0.5)e time.sleep(0.75)o tempo de pausa de execução é de 0.5segundos e 0.7segundo.