Enrico Franchi ha scritto: > On Jan 28, 2008, at 11:32 AM, [EMAIL PROTECTED] wrote: > > > Solo ed esclusivamente se uno vuole cattive performance e divertirsi a > debuggare race conditions e altri heisenbugs. > In particolare il modo più naturale per lavorare fra thread è > precisamente quello del passaggio di messaggi. > > Nota che è qualcosa che ci viene insegnato anche dalla comune > esperienza: se devi mettere due persone a lavorare su qualcosa, è bene > dividere le responsabilità e fare comunicare, *non* lasciare che > mettano le mani nelle stesse cose.
Mi inserisco un attimo, perché sto impazzendo proprio in questi giorni con i thread sotto python e stavo per buttare tutto seguendo le vostre parole, quando questa frase mi ha fatto ripensare. In sostanza: concesso che utilizzare tanti thread che fanno le stesse cose sia sbagliato per motivi di comodità e/o di efficienza, ammettete casi in cui invece sia bene utilizzare i thread per fare cose diverse? Vi scrivo un attimo quello che mi sta facendo impazzire: ho un programmino che ogni tanto deve essere capace di eseguire un'azione dopo un certo numero di secondi. Non mi interessa che il momento in cui la esegue sia precisissimo (per intenderci, se sbaglia anche di qualche secondo non me ne frega niente), ma: 1) il resto del programma intanto deve lavorare 2) non voglio complicarmi la vita 3) non voglio sprecare CPU inutilmente 4) l'azione da eseguire dipende dal thread principale Per il motivo 1), non posso fare un semplice sleep(numerodisecondi), per i motivi 2) e 3) non voglio fare un megaciclo, per il motivo 4) non voglio un processo separato. Perciò ho un thread che parte, si mette in sleep(numerodisecondi) e quando si "sveglia" esegue l'azione. Sbaglio? C'è un modo furbo per rispondere alle mie 4 esigenze senza usare thread? Fin qui la domanda teorica. A questo punto aggiunto che il mio programma usa le pygtk, ed entrambi i thread le utilizzano. So che gtk non è thread-safe, ma so anche che ci sono delle apposite funzioni che rendono i thread "compatibili" nel momento in cui utilizzano oggetti gtk. Il fatto di usare gtk mi dà un modo (semplice) alternativo di dare un'azione da eseguire dopo un tot di tempo, senza nel frattempo paralizzare la GUI? grazie Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python