Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Variablen bei mehreren threads Kategorie: Programmierung (von Martin Binder - 16.05.2002 9:43)
Als Antwort auf Variablen bei mehreren threads von Jogi - 14.05.2002 12:03

> Folgendes Problem.
> Ich habe mehrere threads parallel laufen.Manche Variablen sollen für alle threads gelten.
> Wo muss ich die Variablen deklarieren, dass sie für alle threads gelten.
> Es soll zum Beispiel in einem thread eine Variable beschrieben werden und in einem
> anderen thread ausgedruckt werden.
 
Hallo Jogi,
 
du kannst aus jedem Modul die Variablen der anderen Module ansprechen,
du musst nur den richtigen Modulnamen voranstellen. Das gilt auch über die Thread - Grenzen.
Im Handbuch heisst soetwas "Globale Variable".

Ein Beispiel:
Im Thread "main" wird das Modul "a" aufgerufen, in dem kommt die Variable "vara" vor.
Im Thread "second" wird das Modul "b" aufgerufen, in dem möchtest du auf "vara" aus "a" zugreifen.
Wenn du im Modul "b" nur "vara" schreibst, gibt es eine eigene Variable fürs Modul "b" namens "vara".
Wenn du die Variable mit "a.vara" adressierst, funktioniert es auch wie du möchtest,
einfach nur Modulname und Punkt ( hier "a." ) vor dem "vara" voranstellen.

Aber achte bitte auf folgende Punkte:
1..wenn die Variable in zwei verschiedenen Threads benutzt wird, ist nicht klar, wer wann den Wert
bestimmt. Je nachdem, wer zuletzt schreibt, bestimmt ihren Wert. (Multithreading !)
2..da diese Variable im Modul "a" definiert wurde, braucht es auch keine neue Definition im Modul "b" mehr.
3..da der Interpreter nur ihm bekannte Dinge kompilieren kann, muss Modul "a" vor Modul "b" im Programm-
listing stehen, sonst gibt es eine Fehlermeldung.
4..im Modul "a" kannst du auch "a.vara" schreiben, das erhöht die �bersichtlichkeit des Programms sehr.
5..elegant ist es, ein eigenes Modul für diese "Globalen Variablen" zu erstellen, das ist übersichtlicher.

Gruss  Martin


    Antwort schreiben


Antworten: