Donnerstag, 3. Oktober 2013

Update #03102013 WaitState und asynchronität


Das Multithreadingkonzept der EVAGUI2 wurde überarbeitet.

Durch die asychronität der Prozesse funktionierte der Waitstate (Event - Wait = True) nicht mehr.
Folgende Multithreading-Architektur wurde nun implementiert:

Start -> Deamons (als asynchroner Thread)
Click -> Programm (als asynchroner Thread)
Time -> Programm (als asynchroner Thread)

wenn aus den Threads heraus nun ein Event getriggert wird, so werden die Prozesse in folgendem
Ablauf gestartet:

Regel (1...n) -> (synchron in Thread) -> Applikation (Wait = False) (asynchron in Thread)
Regel (1...n) -> (synchron in Thread) -> Applikation (Wait = True) (synchron in Thread)

Aus der Applikation heraus werden die Regeln und Threads im gleichen Ablauf gestartet.
laufende Deamons ignorieren den Waitstate, da diese niemals beendet werden und somit keine
Freigabe an den übergoerdneten Regel-Thread gesendet wird.

Der WaitState einer Applikation in einem Threads beeinflusst somit nur den Thread der Applikation
und keine anderen Threads die parallel in anderen Threads laufen.

Keine Kommentare:

Kommentar veröffentlichen