English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di Python

Controllo dei flussi in Python

Funzione in Python

Tipi di dati in Python

Operazioni di file in Python

Oggetti e classi in Python

Data e ora in Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

sleep() in Python

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.

Esempio 1: Python sleep()

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.

Esempio 2: Creazione di un orologio digitale in Python

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)

Multithreading in Python

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.

Esempio 3: Multithreading in Python

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.

sleep() in un programma a multi-thread

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.

Esempio 4: sleep() 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.