[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