Multithreading: Forskelle mellem versioner

Content deleted Content added
m Gendannelse til seneste version ved Zero2ninE, fjerner ændringer fra 80.210.107.50 (bidrag)
Linje 1:
'''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 [[IPC (programmering)|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 [[variabel|variable]].
 
== Anvendelse af multithreading ==
Hej da er en forkortelse for mongolt møgbarn!
Da tråde elegant kan distribueres over flere [[CPU|processorer]], kan maksimal ydeevne for [[SMP|multiprocessor]]-systemer nåes ved enkel og effektiv anvendelse af multithreading, uden det store overhead multiproces-programmer skaber hos [[operativsystem]]et.
 
== Eksempel ==
Hej da er en forkotelse for møgbarn!
Et enkelt eksempel på multithreading, skrevet i [[Cocoa]]:
 
<tt>multithread.m</tt>
#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 ==