[Python] Decorated Concurrency - Python multiprocessing made really really easy

Roberto Polli robipolli a gmail.com
Mer 25 Maggio 2016 19:05:19 CEST


Entrata a gamba tesa ;)

- Enrico Franchi ha ((quasi) sempre) ragione;
- multithreading è un bordello in-testabile;
- pthread_mutex_lock() finisce per diventare CPU bound, cosa che è male;
- un race nei lock() finisce solitamente male, e capita magari dopo
qualche mese;

A suo tempo, scrivendo un software in C:
- mi salvai usando posix message queues implementate da Linux;
- il gioco funge magicamente da circa 6 anni in un ambiente abbastanza critico.

Di recente ho usato multiprocessing e mp.Queue per un software io-bound:

  - funziona senza problemi;
  - il codice è molto leggibile;
  - ogni componente è separato e facilmente testabile;
  - eventuali parti shmem sono gestite dalla PSL che è ben testata e mantenuta;

Implementare il tuo multithread | multiprocess con shared memory è un
ottimo modo per interiorizzare il tutto.
Non è vietato o sbagliato: è più complesso da gestire e (imho) non
scala orizzontalmente.


Pax,
R.


Maggiori informazioni sulla lista Python