Dino Geek, cerca di aiutarti

Come usare il modulo asyncio in Python?


Asyncio è un modulo in Python, introdotto in Python 3.4, che fornisce delle API per creare programmi single-threaded in maniera asincrona usando coroutines, multiplexing, e soprattutto, un loop di eventi.

```
import asyncio

async def main(): print(‘Hello’) await asyncio.sleep(1) print(‘World’)

  1. Python 3.7+
    asyncio.run(main())
    ```

Nell’esempio sopra, `main` è una funzione asincrona (definita con `async def`). Questo significa che `main()` è una coroutine, ovvero una versione speciale di una funzione che può essere pausa e ripresa, permettendo ad altre coroutines di eseguire nel frattempo.

`asyncio.run(main())` è l’istruzione per avviare la nostra funzione. La funzione `asyncio.run()` esegue il passaggio attraverso il loop dell’evento fino al completamento.

La linea `await asyncio.sleep(1)` sospende l’esecuzione della coroutine `main()` per 1 secondo – durante quel secondo, l’interprete di Python eseguirà altre cose.

Ricorda: le coroutines non eseguiranno nulla a meno che tu non le avvii. Nei casi in cui non si desidera avviare immediatamente una coroutine, è possibile utilizzare il metodo `ensure_future`.

```
task = asyncio.ensure_future(coro())
```
La funzione `asyncio.ensure_future()` pianifica l’esecuzione di una coroutine e restituisce un oggetto `Task`, che rappresenta l’esecuzione pianificata.

È anche possibile eseguire più operazioni asincrone in parallelo utilizzando `asyncio.gather()`.

```
import asyncio

async def myCoroutine(i): print(f“Coroutine {i} started”) await asyncio.sleep(i/10) print(f“Coroutine {i} finished”)

loop = asyncio.get_event_loop()
coroutines = [myCoroutine(i) for i in range(20)]
loop.run_until_complete(asyncio.gather(*coroutines))
loop.close()
```
In questo esempio, creiamo 20 coroutines che dormono per un certo periodo prima di dichiarare che hanno finito. Utilizziamo quindi `asyncio.gather()` per eseguirle tutte in parallelo.

Queste sono solo le basi di asyncio, il modulo consente agli sviluppatori Python di sfruttare appieno la programmazione asincrono.


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo