2016-05-25 1:43 GMT+02:00 alessandro medici <alexxandro.med...@gmail.com>: > > >> >> >> Quando parlo di memoria condivisa intendo a dettaglio implementativo, >> magari nascosto sotto l'astrazione di una libreria o di un linguaggio. >> Ad esempio in Rust alla fine *usi* memoria condivisa, ma il linguaggio >> ti permette di ragionare senza pensare a sincronizzazioni esplicite. > > > Concordo. > > Occorrebbe che il linguaggio potesse chiamare dal sistema, ed ottenere, > un area condivisa da vari processi. Ed è proprio questo che mi piacerebbe. >
Vedi shmget e mmap: https://trac.nginx.org/nginx/browser/nginx/src/os/unix/ngx_shmem.c Ma come ti ha già scritto Enrico, l'accesso diretto ad un area di memoria non è banale in Python, a meno di non usare tipi primitivi a dimensione fissa. >> >> In Go puoi usare i channel, ma anche qui alla fine usi la memoria >> condivisa, solo che la sincronizzazione è gestita dal runtime. >> Ma sempre in Go, spesso la soluzione più semplice e suggerita in >> mailing list, è quella di usare un mutex. > > > Funziona davvero (in C) per riscrivere spesso, ma inutile se quel che ti > serve (in Python) è lavorare su > troppi dati eguali che cambiano ogni tanto :-( e vanno riletti spesso. Inutile? Sei davvero sicuro? Il mutex è inutile solo se i dati, una volta creati, sono imutabili. Ma non mi sembra il tuo caso. Per un pattern di accesso con uno o pochi scrittori e molti lettori, hanno inventato apposta il: https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python