Nwlapcug.com


La differenza tra Multithreading & Multiprocessing



Multithreading e multiprocessing sono termini associati con la velocità di esecuzione di programmi per computer. Entrambi sono metodi che richiedono un matrimonio di sviluppo hardware e conoscenza di programmazione al fine di essere utilizzati correttamente. I due termini non sono sempre reciprocamente esclusivi; Essi vengono utilizzati insieme per aumentare l'efficienza di un computer.

Differenze di hardware

Elaborazione multipla richiede, come suggerisce il nome, più core di elaborazione fisica. In precedenza, schede madri processori multipli è venuto con più slot separati per unità di elaborazione centrale (CPU) in ingresso. Oggi le tecnologie più recenti da produttori come AMD e Intel consentono per elaborazione multi-core ad essere costruita in una singola CPU "chip". Multithreading non è interamente senza il proprio hardware, ma richiede solo schede madri che supportano il multithreading istruzioni di codice. Schede madri più moderne includono questa possibilità.

Programma individuale contro il sistema operativo

I programmatori utilizzano multithreading set di strumenti per consentire ai programmi di eseguire più operazioni in parallelo. Questa elaborazione di "pipeline" dare l'illusione di due funzioni che accadono simultaneamente, ma in realtà utilizza l'elevata quantità di potenza di elaborazione e algoritmi efficienti per alternare velocemente tra una funzione e l'altra. Come tale, l'uso del multithreading dipende dal codice del programma stesso.

Elaborazione multipla, al contrario, ha un accesso trasparente al potere di più flussi di elaborazione. Un funzioni di elaborazione multipla di accesso singolo programma sotto l'egida del sistema operativo, ad esempio Mac OS di Apple o Microsoft Windows. Come tale, programmi non devono essere particolarmente ottimizzati con multithreading comandi per utilizzare la potenza di elaborazione parallela. Multithreading in realtà può essere utilizzato in combinazione con elaborazione multipla.

Indipendente contro l'elaborazione della Pipeline

Multiprocessing e multithreading differiscono da fondamentalmente in modalità di elaborazione delle istruzioni del programma. In elaborazione multipla, due o più istruzioni possono essere eseguite contemporaneamente, attraverso un processo noto come "elaborazione parallela". Il multithreading, tuttavia, apre la pagina di condotte individuali per ogni istruzione e distribuisce potenza di elaborazione tra quelle condotte periodicamente.

Questa differenza è in gran parte impercettibile quando il carico del processore è piccolo. Tuttavia, simultanee uso intensivo del processore istruzioni inizierà a balbettare in un puro ambiente multithreading. Le stesse funzioni saranno più immuni a tali effetti in un ambiente di elaborazione multipla.

Correzione degli errori

Multithreading apre flussi separati in un unico processo. I flussi di apparire come singoli processi, ma utilizzano uno spazio di indirizzo condiviso sulla memoria del computer all'interno del processo stesso. Elaborazione multipla, tuttavia, apre più processo per eseguire funzioni simultanee e questi processi ogni ottenere proprio pacco di memoria. Quando un singolo processo non riesce in un ambiente di elaborazione multipla, tutti gli altri processi sono risparmiati; Tuttavia, errori in un "thread" individuali non è isolato da altri thread e in ultima analisi, portare giù l'intero processo. Il risultato è il potenziale per i più grandi fallimenti in condizioni di multithreading.