Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terminate threads after simulation to reduce CPU load #1

Closed
MicheleMUC opened this issue Feb 22, 2016 · 3 comments
Closed

Terminate threads after simulation to reduce CPU load #1

MicheleMUC opened this issue Feb 22, 2016 · 3 comments
Assignees
Labels

Comments

@MicheleMUC
Copy link
Contributor

No description provided.

@MicheleMUC MicheleMUC added the bug label Feb 22, 2016
@MicheleMUC MicheleMUC added this to the Alpha 0.6 milestone Feb 22, 2016
@RRothfeld
Copy link
Contributor

Threads können per .stop() Funktion gestoppt werden. Das ist aber veraltet, mittlerweile einfach Thread = null; setzten.

Trennung von GUI und Prozessen (also Freihaltung des event dispatch threads) à la SwingWorker:

  1. SwingWorker (SW) wird via GUI interaction aufgerufen und gestartet (execute())
  2. SW arbeitet aufwendingen Prozess ab, welcher in doInBackground() im SW definiert wird.
  3. Innerhalb der doInBackground()-Funktion wird die SW-eigene Funktion publish() aufgerufen immer wenn es ein Zwischenergebnis gibt (z.B. eine Zahl oder ein Wort)
  4. Jedes mal wenn publish() aufgerufen wird, wird der darin entsandte Wert einer Liste hinzugefügt.
  5. Sporadisch wird die Rechenkraft vom aufwendigen doInBackground()-Prozess auf die GUI geleitet um diese upzudaten (mehrfach pro Sekunde). Immer wenn das geschieht, wird die process()-Funktion des SW aufgerufen, welche Zugriff auf die durch publish() gefüllte Liste hat. Innerhalb der process()-Funktion kann man dann die GUI updaten lassen mit den neuesten Wert, oder allen gespeicherten Zwischenwerten, etc.
  6. Der SW beendet sich selbst, sobald kein Rechenbedarf mehr besteht

Zum reinlesen: https://docs.oracle.com/javase/tutorial/uiswing/concurrency/interim.html oder die volle Dokumentation https://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html

Da wir nicht Swing benutzten sondern Eclipses' eigenes Front-End müssten wir Michael Sh. fragen wie es dort geht.

@MicheleMUC MicheleMUC modified the milestones: Alpha 0.7, Alpha 0.6 Mar 18, 2016
@MicheleMUC
Copy link
Contributor Author

@MSH check what oppurtunities Eclipse provides

@RRothfeld
Copy link
Contributor

Marc, bitte die Funktion stopSimulation() in SimulationHandler erarbeiten, dann sollte diese Issue auch erledigt sein.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants