Filettatura Python vs. multiprocessing: dovrei imparare l'uno prima dell'altro?

4

Sto cercando di approfondire il multithreading o multiprocessing in Python. Domanda: dovrei imparare uno prima dell'altro (per qualsiasi motivo)? Se sì, quale e perché?

Ho letto i pro ei contro in domande SO come questo , ma io ' Non sono proprio sicuro di come si rapportano al valore pedagogico dell'apprendimento dell'uno o dell'altro.

    
posta MikeRand 14.03.2011 - 12:32
fonte

2 risposte

4

Quando inizi, non importa quale scegli. Ciò che è più importante è comprendere meglio come parallelizzare il lavoro. Se non hai quella comprensione di base, non sarai in grado di sfruttare il punto sottile che distingue tra i due.

Scegline uno e abituati a pensare a quale lavoro può essere svolto in parallelo. Pensa a modi in cui puoi suddividere un'attività di grandi dimensioni in parti più piccole. Pensa a quali parti della memoria devono essere accessibili tutte le attività e se quel valore cambia mai. Pensa se è ok se ogni attività ha il proprio valore locale da modificare e se la combinazione di tutti i valori locali alla fine potrebbe impedire il conflitto.

Una volta che pensi di avere una mano su questi tipi di cose, allora puoi tornare indietro e guardare nuovamente le differenze. Con una migliore comprensione della concorrenza, avrai una migliore comprensione di come i due metodi differiscono.

    
risposta data 14.03.2011 - 13:18
fonte
3

Penso sia molto meglio prima capire come pensare in un modo multithread e le sue implicazioni sulla soluzione che è necessario creare.

In generale, paradigmi come Functional o Object Oriented introducono nuovi modi per creare soluzioni in cui ogni elemento del software ha diversi modi di interagire. La concorrenza non è diversa, quando si ha a che fare con l'interazione di più processi è necessario pensare, ad esempio, a cosa succede quando 2 processi hanno bisogno di leggere e scrivere un dato globale e quindi i problemi che appaiono in questo paradigma.

Una volta che la tua testa si è adattata all'ambiente multiprocessing e apprendi le interazioni di base tra i processi, allora potresti imparare Python come un modo per applicare ciò che hai imparato.

    
risposta data 14.03.2011 - 13:56
fonte

Leggi altre domande sui tag