Multithreading og multiprosessering er begreper knyttet til hastigheten som dataprogrammer kjøre. Begge er metoder som krever et ekteskap av kunnskap om programmering og maskinvare utvikling for å bli skikkelig utnyttet. De to betingelser er ikke alltid gjensidig utelukkende, de er brukt i tandem for å øke effektiviteten av en datamaskin . Maskinvare Forskjeller
Multiprocessing krever , som navnet tilsier, flere fysiske prosessorkjerner . Tidligere kom flere prosessor hovedkort med flere separate spor å legge inn Central Processing Units ( CPU ) . I dag , nyere teknologi fra produsenter som AMD og Intel tillate flere prosessorkjerner som skal bygges inn i en enkelt CPU "chip ". Multithreading er ikke helt uten sin egen maskinvare , men bare krever hovedkort som støtter multithreading kode instruksjoner. De fleste moderne hovedkort har denne evnen . Bruke
Individuell Program Versus Operativsystem
Programmerere multithreading verktøy sett for å tillate programmer å utføre flere oppgaver parallelt. Denne " pipeline " behandling gi illusjon av to funksjoner som opptrer samtidig , men faktisk bruker det høye antallet prosessorkraft og effektive algoritmer for å veksle raskt mellom en funksjon og en annen. Som sådan , blir bruken av multithreading på koden for selve programmet.
Multiprocessing , derimot , har en mer transparent tilgang til kraften av flere prosessering bekker . Et individuelt program tilgang multiprosesseringsoppgaver funksjoner i regi av operativsystemet , slik som Apples Mac OS eller Microsoft Windows . Som sådan behøver programmer ikke være særlig optimalisert med multithreading kommandoer for å utnytte kraften av parallell prosessering . Multithreading kan faktisk brukes i forbindelse med multiprosessering .
Uavhengig versus Pipeline Processing
Multiprocessing og multithreading avvike fundamentalt i hvordan programmet instruksjoner behandles. I flerprosessering , kan to eller flere instruksjoner utføres samtidig, gjennom en prosess referert til som " parallell prosessering . " Multithreading , men åpner opp enkelte rørledninger for hver instruksjon , og distribuerer prosessorkraft mellom disse rørledningene jevne mellomrom.
Denne forskjellen er stort sett umerkelig når prosessoren belastningen er liten. Imidlertid vil samtidige prosessor - intensive instruksjoner begynner å stamme i en ren multithreading miljø . De samme funksjonene vil være mer immun mot slike effekter i en multiprosessering miljø .
Error Correction
Multithreading åpner opp separate strømmer innenfor en enkelt prosess . Den strømmer ut som individuelle prosesser , men benytte en felles adresse -plass på datamaskinens minne i samme prosess . Multiprosessing , men åpner opp flere prosess for å utføre samtidige funksjoner og disse behandler hvert få sin egen pakke av minne. Når en enkelt prosess feiler på en multiprosessering miljø , blir alle andre prosesser spart , men er feil i en individuell "tråder" ikke isolert fra andre tråder , og til slutt få ned hele prosessen . Resultatet er potensialet for større svikt i henhold multithreading forhold.