multithreading e multiprocessing sono termini associati con la velocità con cui i programmi di computer di funzionare . Entrambi sono metodi che richiedono un matrimonio di conoscenze di programmazione e sviluppo dell'hardware per poter essere adeguatamente utilizzati . I due termini non sono sempre reciprocamente esclusive , sono utilizzati in tandem per aumentare l' efficienza di un computer . Differenze di hardware
Multiprocessing richiede , come dice il nome , più core di elaborazione fisici . In precedenza , molteplici schede madri processore è venuto con più slot separati per ingresso Central Processing Unit ( CPU ) . Oggi, le nuove tecnologie di produttori quali AMD e Intel consentono più core di elaborazione per essere integrati in una singola CPU "chip ". Multithreading non è del tutto senza il proprio hardware , ma richiede solo le schede madri che supportano le istruzioni di codice multithreading . Schede madri più moderne includono questa capacità .
Programma individuale Versus Sistema operativo
programmatori usano strumento multithreading imposta per consentire ai programmi di eseguire più attività in parallelo . Questa elaborazione "pipeline " dare l'illusione di due funzioni che si verificano simultaneamente , ma in realtà usa l'elevata quantità di potenza di elaborazione e algoritmi efficienti per alternare rapidamente tra una funzione e l' altra . Come tale , l' uso di multithreading dipende dal codice del programma stesso .
Multiprocessing , invece , ha un accesso più trasparente alla potenza di più flussi di trattamento . Un individuo funzioni del programma di accesso multiprocessing sotto l'egida del sistema operativo , ad esempio Mac OS di Apple o Microsoft Windows . Come tale, i programmi non occorra particolarmente ottimizzati con comandi multithreading utilizzare la potenza di elaborazione parallela . Multithreading in realtà può essere utilizzato in combinazione con multiprocessing .
Indipendente contro pipeline di elaborazione
Multiprocessing e multithreading differiscono fondamentalmente nel modo in cui le istruzioni del programma vengono elaborati. In multiprocessing , due o più istruzioni possono essere eseguiti simultaneamente , mediante un processo denominato " elaborazione parallela ". Multithreading , tuttavia , apre le singole condotte per ogni istruzione , e distribuisce la potenza di elaborazione tra quelle condotte periodicamente .
Tale differenza è sostanzialmente impercettibile quando il carico del processore è di piccole dimensioni . Tuttavia, le istruzioni simultanee intensivo del processore inizierà a balbettare in un ambiente multithreading puro . Le stesse funzioni saranno più immuni da tali effetti in un ambiente multiprocessore .
Error Correction
Multithreading apre flussi separati all'interno di un unico processo . I flussi assomigliano singoli processi , ma utilizzano uno spazio di indirizzi condiviso sulla memoria del computer all'interno dello stesso processo . Multiprocessing , però , si apre processo multiplo per eseguire funzioni simultanee e ciascuno riceve il proprio appezzamento di memoria . Quando un singolo processo non riesce in un ambiente multiprocessore , tutti gli altri processi sono risparmiati , ma i guasti in un individuo "fili" non è isolato da altri thread , e in ultima analisi, far cadere l'intero processo . Il risultato è la possibilità di errori più grandi in condizioni di multithreading .