English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La funzione sleep() sospende (aspetta) l'esecuzione della thread corrente per il numero di secondi specificati.
Python ha un nometimedel modulo, che fornisce alcune funzioni utili per gestire i compiti relativi al tempo. Una delle funzioni più comuni è sleep().
La funzione sleep() sospende l'esecuzione della thread per il numero specificato di secondi.
import time print("Stampa immediatamente") time.sleep(2.4) print("Stampa dopo 2.4 secondi")
Il funzionamento del programma è il seguente:
Viene output "Stampa immediatamente"
Posticipare (ritardare) l'esecuzione di 2.4 secondi.
Stampare l'output "Stampa dopo 2.4 secondi" .
Dal esempio sopra, si può vedere che sleep() accetta un numero a virgola mobile come parametro.
Prima della versione 3.5 di Python,l'intervallo di pausa effettivo potrebbe essere inferiore al parametro specificato per la funzione time().
Dalla versione 3.5 di Python,l'intervallo di pausa sarà almeno il numero di secondi specificato.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
Nel programma sopra, abbiamo calcolato e stampato in modo infinitowhile loope poi, il programma aspetta 1 secondo. Allo stesso modo, viene calcolato e stampato l'ora locale corrente. Questo processo continua.
Quando esegui il programma, l'output sarà simile a:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
Questa è una versione migliorata leggermente del programma menzionato sopra.
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)
Prima di discutere del programma multithreading sleep(), parliamo di processo e thread.
Un programma per computer è un insieme di istruzioni. Un processo è l'esecuzione di queste istruzioni.
Un thread è un sottoinsieme di un processo. Un processo può avere una o più thread.
Tutti i programmi sopra menzionati sono programmi a singolo thread. Ecco un esempio di programma Python a multi-thread.
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()
Quando esegui il programma, l'output sarà simile a:
Hello Hello Hi Hello Hi Hi
Il programma sopra ha due threadt1et2.Queste thread vengono eseguite con le istruzioni t1.start() e t2.start().
Notare che,t1et2Eseguendo contemporaneamente, potresti ottenere output diversi.
La funzione sleep() sospende l'esecuzione della thread per il numero specificato di secondi.
Se il programma è a singolo thread, sleep() interrompe l'esecuzione della thread e del processo. Tuttavia, questa funzione sospende solo la thread e non l'intero processo in un programma a multi-thread.
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()
Il programma sopra ha due thread. Abbiamo già utilizzato questi due thread time.sleep(0.5) e time.sleep(0.75) con pause di esecuzione rispettivamente di 0.5 secondi e 0.7 secondi.