Stasera, giusto per prender sonno, stavo leggendo Python Parallel Programm.... etc. etc. Comprato in una svendita online col 75% di sconto :-)
[NON E' PUBBLICITA': Scritto bene nella parte teorica e nello spiegare, a parte qualche sassolino. Almeno per quel che ne posso dire io. Molto meno bene (quasi pessimo?) nel codice stampato, poco meglio lo scaricabile. Poco importa però e forse: sciocchezze e questioni di stile, e mi sembra anche che da qualche parte scriva che il suo testo non sia proprio da neofiti] Ma sorry: vedo anche due cose: 1° è l'uso estensivo dei dizionari creati nel processo padre ed aggiornati dai processo figlio, sia nelle voci che nel contenuto. Un giro rapido e, stupore, non solo i dizionari, ma anche liste. L'unica cosa che non ho visto fare è applicare il metodo __del__, cosa comprensibile, peraltro, almeno per la salute mentale del memory manager. Ecco: basterebbe FORSE creare un'altro dizionario delle voci che andrebbero cancellate e poi, magari, farlo dopo? Ok, 1° compito prima delle vacanze: Ma i dizionari sono pressoché gli unici oggetti composti che si possono aggiornare in multiprocess? La 2° viene dall'altra idea: Mi era venuto subito in mente quando lessi l'articolo che postai qualche giorno addietro, quel qualcosa sul cambiare le ruote alla bici mentre si pedala: http://mathamy.com/python-wats-mutable-default-arguments.html cosa succederebbe se cambiassi le variabili di default di una classe o di un metodo mentre la loro progenie è occupata in un processo? Magari in una ABC genitore? Forse nulla. Forse dipenderà dal metodo con cui si lanceranno i processi? ( https://docs.python.org/3.5/library/multiprocessing.html#the-spawn-and-forkserver-start-methods usa inherits ma non chiarisce se intende 'copiare' o 'linkare') Forse salto in aria :) E poi vedo Enrico leggermi, e che già chiede per me a viva voce un TSO, pensare ancora più a ragione un 'ma chi me lo fa fare'? Eddai: forza e coraggio Enrico, ormai sono sulla via della tomba, che quella con la r in più ormai la vedo raramente :-( E però sono curioso. E per due mani di pittura dovrebbero bastare poche ore, come disse il pittore prima di scoprire che si trattava della torre Eiffel. Alex ps: la vera perla però è che ho trovato anche che non mi occorrerà sprecare tempo e denaro nel mare di sangue per avere un'area dati shared tra processi, esiste già, si veda: 17.2.1.5. Sharing state between processes¶ <https://docs.python.org/3.5/library/multiprocessing.html#sharing-state-between-processes> nella pagina che cito poco sopra e poi si dia un ctrl-f su shared memory. Evidentemente il timore del seg-fault non li ha fermati. Ed, a me, averla organizzata come array mi va benissimo: il mappare dati in modo diverso nel Cobol era una delle cose più divertenti da fare nell'epoca di quando ero un ragazzino. Almeno quando ero vestito. (Al riguardo dei vestiti il BDFL ed io il abbiamo le stesse idee. E anche la stessa età :-( :)
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python