Re: Synchronisierung Kategorie: Programmierung (von KlaRa - 26.10.2005 13:37) | ||
Als Antwort auf Synchronisierung von Christian Jost - 26.10.2005 10:37 | ||
| ||
Hallo, ich Denke, so lang Du nur einen Wert auf False setzt, wird nichts negatives passieren. Im extremsten Fall wird der Variablenwert zweimal hintereinander gesetzt. Ich denke nicht das die Variablenverwaltung der CC2 so verfeinert ist, dass sie eine Variable zum �ndern sperrt. Es wird wohl nur der Zeiger auf den Speicherplatz geholt und dort hineingeschrieben. Anders ist es wenn man Werte zuverlässig inkremieren möchte. Dann muss man sicher mit capture arbeiten. Gruss Klaus. > Hallo, > > Ich hätte ein paar Fragen zur Synchronisierung: > > 1) > Ich habe 4 Worker-Threads. Sobald einer fertig ist, soll dieser ein globales Flag setzen: > > int ready; > ... > ready = TRUE; > > Ein anderer Thread führt folgendes aus: > > loop > { > wait ready; > ready = FALSE; > ... > } > > Kann die virtuelle Maschine durcheinander geraten (=Absturz), wenn zwei Threads "gleichzeitig" > versuchen auf dieselbe Variable zuzugreifen? Es spielt keine rolle ob das Flag mehrmals gesetzt > wird oder von wem es gesetzt wird. Es ist einfach wichtig dass es gesetzt wird. > Ich möchte für diesen Fall kein capture/release benutzen um die Programmausführung nicht durch > Wartezustände zu verlangsamen. > > > 2) > wenn ich durch run 255 die Priorität erhöhe, so wirkt sich das sofort aus oder erst > nach dem nächsten Thread-Wechsel? > Ich denke da an folgende Anwendung für einen Ringbuffer: > > run 255; > capture sema; > bufCount = (bufCount + 1); > release; > resume; > > Ziel ist auch hier wieder möglichst wenig zu blockieren. > > > 3) > In diesem Eintrag: 11080 > hat André H. geschrieben, dass andere Threads immer lesend auf Variablen zugreifen dürfen > (ohne capture) wenn sie nur von einem Thread verändert werden. > Gilt das auch für long, float und string oder nur für byte/int? > > > Besten Dank für eure Hilfe. > > Gruss, > Chris > > | ||
Antwort schreiben Antworten: Re: Synchronisierung (von Christian Jost - 28.10.2005 20:01) |