Multithreading og multiprocessing er vilkår , der er forbundet med den hastighed , hvormed computerprogrammer køre. Begge er metoder , som kræver et fornuftsægteskab kendskab til programmering og hardware udvikling for at være ordentligt udnyttet. De to begreber er ikke altid gensidigt udelukkende , men bruges i tandem til at øge effektiviteten af en computer . Hardware Forskelle
Multiprocessing kræver , som navnet antyder , flere fysiske processorkerner . Tidligere , flere processor bundkort kom med flere separate slots til input (Central Processing Units CPU) . I dag nyere teknologier fra producenter som AMD og Intel giver mulighed for flere processorkerner , der skal bygges i en enkelt CPU "chip ". Multithreading er ikke helt uden egen hardware, men kræver kun bundkort, der understøtter multithreading kode instruktioner. De fleste moderne bundkort omfatter denne evne.
Individuelt program Versus Operating System
Programmører bruger multithreading værktøj sæt til at tillade programmer til at udføre flere opgaver parallelt. Denne " pipeline " behandling give illusionen af to funktioner forekommende samtidigt, men faktisk bruger den høje mængde af processorkraft og effektive algoritmer til at veksle hurtigt mellem én funktion og en anden. Som sådan , afhænger anvendelsen af multithreading om koden for selve programmet . Nær
Multiprocessing , har derimod en mere gennemsigtig adgang til kraften fra flere processtrømme . Et individuelt program adgang multiprocessing funktioner i regi af operativsystemet , såsom Apples Mac OS eller Microsoft Windows . Som sådan behøver programmer ikke specielt optimeret med multithreading kommandoer til at udnytte kraften i parallel behandling . Multithreading faktisk kan bruges i forbindelse med multiprocessing.
Independent versus Pipeline Processing
Multiprocessing og multithreading grundlæggende forskellige i, hvordan programmet instruktioner behandles. I multiprocesser kan to eller flere instrukser udføres samtidigt, via en proces kaldet " parallel behandling . " Multithreading dog åbner individuelle rørledninger for hver instruktion og distribuerer regnekraft mellem disse rørledninger jævne mellemrum.
Denne forskel er stort set ubemærket , når processoren belastningen er lille. Dog vil samtidige processor -intensive vejledning begynder at stamme i en ren multithreading miljø. De samme funktioner vil være mere immune over for sådanne virkninger i en multiprocesser miljø.
Error Correction
Multithreading åbner separate strømme inden for en enkelt proces. Strømmene ligner enkelte processer , men anvender en delt adresse plads på computerens hukommelse inden for samme proces . Multiprocesser imidlertid åbner multipel proces at udføre samtidige funktioner og disse processer får hver deres egen parcel hukommelse . Når en enkelt mislykkes i et multiprocessering miljø, er alle andre processer skånet , men er fejl i en individuel "tråde " ikke isoleret fra andre tråde , og i sidste ende bringe ned hele processen. Resultatet er potentialet for større svigt under multithreading forhold.