Dino Geek, cerca di aiutarti

Come eseguire il codice Python in parallelo?


L’esecuzione del codice Python in parallelo può essere realizzata attraverso vari metodi, ma uno dei più comuni è l’utilizzo dei moduli multiprocessing o threading forniti da Python.

Il modulo multiprocessing consente agli utenti di creare processi separati con un punto di ingresso indipendente, che consente l’esecuzione in parallelo. Ecco un esempio di base:

```
from multiprocessing import Process

def print_func(continent=‘Asia’): print(‘Il nome del continente è :’, continent)

if name == “main”: # conferma che il codice viene eseguito direttamente names = [‘America’, ‘Europe’, ‘Africa’] procs = [] proc = Process(target=print_func) # istanzia senza argomento per ottenere il valore di default procs.append(proc) proc.start()

# instanziare il processo con argomenti for name in names: # passa ogni nome al nome del continente proc = Process(target=print_func, args=(name,)) procs.append(proc) proc.start() # completa i processi for proc in procs: proc.join() ```

In alternativa, il modulo threading può essere utilizzato per creare thread, piuttosto che processi. Questo è particolarmente utile se si desidera condividere la memoria tra diverse parti del codice.

```
import threading

def print_numbers(): for i in range(10): print(i)

def print_letters(): for letter in [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]: print(letter)

  1. crea due thread
    thread1 = threading.Thread(target=print_numbers)
    thread2 = threading.Thread(target=print_letters)
  1. avvia i thread
    thread1.start()
    thread2.start()
  1. attendo che entrambi i thread finiscano
    thread1.join()
    thread2.join()
    ```

Si noti che i thread in Python non sono realmente paralleli a causa del Global Interpreter Lock (GIL), il quale permette l’esecuzione di un solo thread alla volta in un processo. Perciò, per sfruttare l’intera capacità di elaborazione di un sistema multi-core, si dovrebbero utilizzare i processi.


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