Multithreading

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

Multithreading er en måde at distribuere opgaver i programmer mellem flere, alenestående men samarbejdende tråde i programmet, og adskiller sig fra multiproces-programmer ved, at der ikke anvendes flere instanser af samme program samtidig, med dertil hørende interproceskommunikation, men at al håndtering af koordination og kommunikation foregår inde i selve programmet, samt at programmerne nemt og elegant kan anvende samtlige globale variable.

Indholdsfortegnelse

Anvendelse af multithreading

Da tråde elegant kan distribueres over flere processorer, kan maksimal ydeevne for multiprocessor-systemer nåes ved enkel og effektiv anvendelse af multithreading, uden det store overhead multiproces-programmer skaber hos operativsystemet.

Eksempel

Et enkelt eksempel på multithreading, skrevet i Cocoa:

multithread.m

  #import <Cocoa/Cocoa.h>
  @interface Multithread : NSObject {
  }
  - (void) sigHejToGange;
  - (void) hejThread;
  @end
 
 @implementation Multithread
  - (void) sigHejToGange {
     NSLog(@"Hej, verden");
     [NSThread detachThreadSelector: @selector( hejThread) toTarget: self withObject: NIL];
  }
 
  - (void) hejThread {
    NSLog(@"Hej, verden");
  }
  @end
 
  int main() {
    Multithread * test = [[Multithread alloc] init];
    [test sigHejToGange];
    [test release]
  }

Programmet udskriver "Hej, verden" to gange - i to forskellige threads.

Synkronisering mellem tråde

Synkronisering kan ske med mutexes og spinlocks, eller ved hjælp af primitive kontrolvariable, og et simpelt if-udsagn.

Programmeringssprog, som understøtter tråde

Operativsystemer, som understøtter tråde

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net