Herunterladen Inhalt Inhalt Diese Seite drucken

Warten Auf Ereignisse; Pausen - Conrad C-Control II Unit Handbuch

Kompakter steuerungscomputer
Inhaltsverzeichnis

Werbung

C-Control II Unit

5.9.4 Warten auf Ereignisse

In bestimmten Situationen soll ein Thread auf das Eintreten eines Ereignisses warten und
in der Wartephase möglichst wenig Rechenkapazität belegen. Dafür dient in C2 die
wait-Anweisung.
Die wait-Anweisung prüft den Wert eines angegebenen numerischen Ausdrucks. Ist der
Wert gleich 0, dann gibt der aktuelle Thread die Programmausführung, unabhängig von
seiner Priorität, sofort an den nächsten Thread ab (vgl. yield). Dadurch wird vermieden, daß
Threads mit hoher Priorität wartend das System blockieren.
Ein Thread wiederholt die wait-Anweisung so lange, bis der numerische Wert ungleich
0 wird.
wait numerischer Ausdruck;
z.B.:
wait ports.get(3); // wartet auf High-Pegel an Port3

5.9.5 Pausen

In vielen Anwendungen ist es erforderlich, daß ein Thread seine Ausführung für eine
bestimmte Zeit unterbricht und danach automatisch weiterläuft. Dazu gibt es in C2 die
sleep-Anweisung. Nach dem Schlüsselwort sleep folgt ein numerischer Ausdruck.
sleep numerischer Ausdruck;
z.B.:
sleep 1000;
Der berechnete Wert des numerischen Ausdrucks bestimmt die Ruhepause des aktuellen
Threads in Millisekunden. Der Wert des Ausdrucks bleibt auf den int-Bereich beschränkt.
Gegebenenfalls nimmt die virtuelle Maschine eine Konvertierung vor. Negative
Pausenwerte von -1 bis -32768 werden als Werte von 65535 bis 32768 interpretiert
(Zweierkomplement).
Die Prüfung, ob eine Pause beendet ist, erfolgt mit jedem Zyklus, in dem der Thread
Rechenzeit erhält. In einer Anwendung mit sehr vielen Threads, die mit hohen Prioritäten
lange Umlaufzeiten nach sich ziehen, kann die tatsächliche Pause daher etwas länger als
ursprünglich spezifiziert werden.
76

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis