[Python] GIL e fork - multiprocesso -

Manlio Perillo manlio_perillo a libero.it
Gio 20 Maggio 2010 23:49:18 CEST


Alessandro Agosto ha scritto:
> Scusa se rispondo con ritardo ma ho problemi con la connessione.
> Nessuna confusione anzi ti ringrazio ancora per l'interesse. A questo
> punto sto giocando col multiprocessing.
> Posso chiederti come mai lo ritieni un test particolare ?

Per diverse ragioni:

1) Di solito le applicazioni sono I/O bound (vedi accesso ai file, alla
   rete, e database), e le funzioni di I/O, in CPython ed estensioni
   scritte con in mente il threading, rilasciano il GIL.

2) Diverse funzioni che sono CPU bound sono scritte in C, ed anche
   queste rilasciano il GIL.
   Vedi ad esempio PIL, e numpy.

Ovviamente ci sono casi significativi in cui il codice CPU bound è in
Python puro, ed in questo caso il multiprocessing è la soluzione migliore.


Ciao  Manlio


Maggiori informazioni sulla lista Python