Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Comprendere la programmazione asincrona | Asynchronous Programming
Programmazione Strutturale in Python

Comprendere la programmazione asincrona

Scorri per mostrare il menu

Asynchronous programming è un modo di scrivere programmi che possono gestire molti compiti apparentemente nello stesso momento, senza attendere che ogni compito finisca prima di iniziare il successivo. Questo è particolarmente utile per attività che trascorrono molto tempo in attesa, come la lettura di file, le richieste di rete o l'interazione con database. Invece di bloccare il programma mentre si attende il completamento di un compito, la programmazione asincrona permette al codice di continuare ad eseguire altri compiti.

Al centro del modello di programmazione asincrona di Python si trova il ciclo degli eventi. Il ciclo degli eventi è responsabile della gestione e della pianificazione dei compiti pronti per essere eseguiti. Tiene traccia di tutti i compiti, controlla quali sono in attesa di qualcosa (come un input o un timer) ed esegue quelli pronti. Questo consente al programma di progredire su più compiti senza la necessità di più thread o processi.

Un elemento fondamentale della programmazione asincrona in Python è la coroutine. Le coroutine sono funzioni speciali definite con async def. Possono sospendere la loro esecuzione in determinati punti utilizzando la parola chiave await, che indica al ciclo degli eventi di eseguire altri compiti mentre si attende il completamento di qualcosa. Quando l'operazione attesa termina, il ciclo degli eventi riprende la coroutine esattamente da dove era stata sospesa.

Utilizzando il ciclo degli eventi e le coroutine, è possibile scrivere codice efficiente e reattivo, soprattutto per programmi legati all'I/O. Questo approccio è diverso dal threading o multiprocessing tradizionale perché evita il sovraccarico della creazione di più thread o processi, affidandosi invece al ciclo degli eventi per gestire quando ogni compito viene eseguito.

import asyncio

async def greet_after_delay():
    print("Hello...")
    await asyncio.sleep(2)  # Pause here, let event loop run other tasks
    print("...world!")

# To actually run the coroutine, you need to use the event loop:
asyncio.run(greet_after_delay())

Output:

Hello...
...world!
question mark

Quale delle seguenti opzioni descrive meglio il ruolo del ciclo degli eventi nella programmazione asincrona di Python?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 1
some-alt