Sto realizzando un programma per eseguire simulazioni in Python, con un'interfaccia wxPython. Nel programma, è possibile creare una simulazione e il programma esegue il rendering (= calcola) per te. Il rendering può richiedere molto tempo.Multiprocessing o multithreading?
Quando l'utente avvia una simulazione e definisce uno stato iniziale, voglio che il programma renda la simulazione continuamente in background, mentre l'utente potrebbe fare cose diverse nel programma. Un po 'come una barra in stile YouTube che si riempie: puoi giocare la simulazione solo fino al punto che è stato renderizzato.
Devo utilizzare più processi o più thread o cosa? La gente mi ha detto di usare il pacchetto multiprocessing
, l'ho controllato e sembra buono, ma ho anche sentito che i processi, a differenza dei thread, non possono condividere molte informazioni (e penso che il mio programma dovrà condividere molte informazioni .) Inoltre ho anche sentito parlare di Stackless Python: è un'opzione separata? Non ne ho idea.
Si prega di avvisare.
Sono preoccupato per il tuo "Penso che il mio programma dovrà condividere molte informazioni" - vuoi dire che non lo sai ancora ?? Forse dovresti fare più lavoro di progettazione. Il modulo di multiprocessing è liberamente compatibile con il modulo di threading, quindi il passaggio non dovrebbe essere un grande sforzo. Ma attenzione al GIL che mi farebbe preferire il multiprocessing. – CyberFonic