INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Probleme mit lokaler Variable



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.01.2009, 19:30
Beitrag #1

jojo Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: May 2008

8.5.1
2008
de

84066
Deutschland
Probleme mit lokaler Variable
Hallo,

ich habe ein recht großes Programm, in dem ich mehrere lokale Variablen benutze. In die gleiche Variable werden in mehreren gleichzeitig ablaufenden While-Schleifen Daten geschrieben und gelesen. Nun wird beim Auslesen der Variable manchmal der „neue“ und manchmal der „alte“ Wert ausgelesen. Wie kann ich dieses Problem lösen? Ich möchte das Lesen und Schreiben zwar nahezu zeitgleich, aber eben doch so versetzt ablaufen lassen, so dass beim Auslesen der Wert gelesen wird, der gerade neu geschrieben wurde.

Das Problem hat mit den schon öfter erwähnten „race conditions“ zu tun, oder?

Würde mich über Eure Hilfe freuen

Gruß
Jojo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.01.2009, 19:47
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Probleme mit lokaler Variable
' schrieb:Das Problem hat mit den schon öfter erwähnten „race conditions“ zu tun, oder?
Bingo! Also: Im Prinzip Ja.

Eine Lösung: Melder. Diese Lösung ist auf jeden Fall vorzuziehen, wenn Daten zwischen parallelen Strukturen ausgetauscht werden sollen.

Aber: Das Problem, ob bei Meldern oder lokalen Variablen, tritt allerdings nur dann auf, wenn in mehreren parallelen Strukturen die selbe lokale Variable beschrieben werden soll. Lesen ist unkritisch. Parallel Schreiben geht aber prinzipiell nicht. Ist die eine Task nur 1µs schneller, so wird deren Wert durch die langsamere Task überschrieben, egal ob Melder oder lokale Variable.

Lösung: Alle schreibenden Zugriffe in eine Task. Oder wenn applikatiopnstechnisch doch parallel notwendig, möglicherweise Queues nehmen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.01.2009, 20:09
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Probleme mit lokaler Variable
' schrieb:Das Problem hat mit den schon öfter erwähnten „race conditions“ zu tun, oder?

genau das ...

ich würde versuchen die Schleifen über einen Notifier oder eine Queue zu synchronisieren, die Verzögerung zwischen Daten reinschreiben und auslesen ist minimal, eine lokale Variable wird auch nicht schneller sein ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Lokaler Pfad Robier 1 2.832 01.06.2017 17:26
Letzter Beitrag: th13
  Initialisierung Lokaler Variable Hosenscheisser 4 5.394 18.07.2016 09:45
Letzter Beitrag: Hosenscheisser
  NXT und SubVI mit Lokaler Variable RoboPeer 7 5.836 01.12.2011 15:09
Letzter Beitrag: RoboPeer
  Fehler mit lokaler Variable bluesaturn 1 4.192 25.05.2010 15:19
Letzter Beitrag: bluesaturn

Gehe zu: