Threads, Nebenläufigkeit, Objektmethoden - Frage
-
Hallo,
Ich habe da eine Frage zu Threads, die in der Form afaik so noch nicht gestellt wurde.
Ich habe einer Win32-Consolenapplikation mit mehreren Threads, die über ein Objekt mit Variablen und Methoden kommunizieren.
Die Variablen werden lesend benutzt, sollten also imho Threadsafe sein. (Nur der Thread der Main() darf schreiben, bzw jeder Thread in "seiner" Variable.)Nun stellt sich mir eine Frage nach den Methoden des Objekts.
Z.B.: Eine Methode dieses für alle Threads zugänglichen Objekts benötigt einige Parameter.
- Thread A ruft nun diese Methode mit seinen Parametern auf
- Das OS wechselt den Fokus(oder wie heisst das?) auf Thread B.
- Thread B ruft nun auch diese Methode mit seinen Parametern auf.
Beide Threads haben nun deren Programmausführzeiger in der Methode des Objekts.Kann ich nun davon ausgehen, dass die Methode für Thread A mit den richtigen Werten arbeitet, oder muss ich eher befürchten, dass Thread B die Variablen der Methode mit seinen Werten überschrieben hat...
Erzeugt also jeder Thread eine Kopie der Methode/Funktion und lässt diese mit "seinen" Einstellungen laufen?
Oder ist die Methode mit der Abarbeitung der Anfrage von Thread A beschäftigt und Thread B wartet automatisch?Oder wie muss ich mir das vorstellen?
Compiler: MinGW 2.05, Win32.
Gruss
R
-
Lokale Variablen der Methode dürften für jeden Thread gesondert vorliegen (die werden auf dem jeweiligen Stack angelegt, beeinflussen sich also nicht) - problematisch wird es nur mit statischen Variablen (die gibt's nur einmal) und Pointern, die du von außen bekommen hast (dazu gehört auch this mit allem, was dranhängt).