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 

whileschleife nur einmal durchlaufen



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!

08.06.2012, 12:44
Beitrag #16

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: whileschleife nur einmal durchlaufen
Hab mir mal ein Minimalbeispiel gebastelt (Array mit 1E7 einträgen erzeugt, einmal alle = 1 einmal alle = 2; anschließend "gleichzeitig" in eine Lokale Variable schreiben lassen und danach vergleich mit 1 und 2 und nen Oder über das Array von Bool. Bei ner Atomaren Operation sollte nur einmal True rauskommen, bei ner Mischung sollte ich am Ende zweimal True haben.

Ergebnis: Ich sehe IMMER (reproduzierbar), dass 1 offenbar als zweites zum Zuge kommt, da das Array immer aus nur 1en besteht die also als zweites geschrieben werden. Heist: 1. Offenbar ist das atomar (habe extra noch Leitungen angefügt, um sicherzustellen, dass eine Speicherkopie erstellt werden muss. So nur ne Referenz in die (hier) lokale Variable geschrieben werden muss sollte das sowieso atomar sein, leider kann man jedoch Cluster schlecht testen (da müsste man schon wirklich Aufwand Betreiben um Kollisionen zu erzeugen....).

Weis jemand wie Labview die lokalen und globalen Variablen intern handhabt? Mir fiel grade auf, dass man atomarität relativ einfach sicherstellen kann, wenn die Global / Lokal nur eine Referenz auf eine Referenz auf das Objekt enhält. Dann kann man erst eine komplette (valide) Speicherkopie erzeugen und dann auf diese verweisen (ohne die globale Adresse des Speicherbereichs ändern zu müssen)...


P.S: Interessant finde ich an dem Minimalbeispiel, dass scheinbar ein fester Ablauf vorliegt, obwohl ich erwarten würde, dass mal das eine, mal das andere Array eher zum Zuge kommt. Ka ob ich beim "Erzeugen von Gleichzeitigkeit" da noch nen Denkfehler habe...


Angehängte Datei(en)
11.0 .vi  Test Atomaritaet.vi (Größe: 9,46 KB / Downloads: 155)

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: whileschleife nur einmal durchlaufen - Kiesch - 08.06.2012 12:44

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Nur ein SubVI in Whileschleife soll verzögert werden mikadm 2 3.508 12.08.2020 14:54
Letzter Beitrag: mikadm
  Sequenz wird zweimal durchlaufen mprocket 7 5.693 21.01.2018 18:59
Letzter Beitrag: mprocket
  for-Schleife rückwärts durchlaufen thz89 3 6.007 01.09.2017 09:06
Letzter Beitrag: jg
  Event in Eventsrtuktur bei Start einmal ausführen hansi9990 1 3.673 14.05.2017 15:32
Letzter Beitrag: GerdW
  Case Structure nur einmal durchführen McButch 5 6.452 30.05.2016 16:43
Letzter Beitrag: jg
  Case schleife einmal ausführen Alighieri 9 9.951 17.03.2015 08:24
Letzter Beitrag: Alighieri

Gehe zu: