1 van 1

Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: vr 07 aug 2009, 15:16
door Bert F
Graag had ik een stukje code, in java, gevonden op internet gedebugd. Meer bepaald zou ik graag een variabele volgen en dus printen tijdens de uitvoering van het program. Hiervoor heb ik het program in eclipse gebracht en van hier uit run ik het.

Nu heb ik in de classe waarin ik de variablen wil volgen Runnable geïmplementeerd deze start een thread op moment de class initiator hier een object van maakt.

Deze thread moet nu mijn variabelen printen echter het continue printen geeft niks, of iets wat niet te volgen is daarom dacht ik eraan dat ik op één of ander manier de thread zou moet kunnen laten slapen zolang de variabele niet veranderd is en enkel dan laten printen op moment er een nieuwe waarden is.

Hoe doe ik dat? Groeten.

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: vr 07 aug 2009, 17:23
door 317070
Dit klinkt alsof je een Event-systeem wilt hebben?

De variabele inpakken in een grotere klasse, met daarin het systeem dat je wilt zou de truc moeten doen. Of als de variabele al een PropertyChangeListener heeft, gewoon die gebruiken.

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: vr 07 aug 2009, 21:12
door Nvt
Voor threading:

http://java.sun.com/docs/books/tutorial/es...ency/index.html

Zie eventueel: Pausing Execution with Sleep

;)

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: vr 07 aug 2009, 21:33
door Bert F
Bedankt.
Dit klinkt alsof je een Event-systeem wilt hebben?
Wat bedoel je daar mee? Groeten.

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: vr 07 aug 2009, 21:57
door 317070
Wat bedoel je daar mee? Groeten.
Dat iedere keer als er een waarde gecreëerd wordt, je wil dat er een event gegenereerd wordt. In dat event, kun je dan bijvoorbeeld de variabele afdrukken.

Maar hoeveel weet je al van Java?

Anders moet je in plaats van Thread, misschien gewoon een SwingWorker maken? Deze zijn veel handiger dan Threads...

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: za 08 aug 2009, 00:30
door ZVdP
Hoe wordt de variabele veranderd?

Als het gebeurt in een methode (bv setVar(int newValue) of zoiets)

kan je misschien gebruik maken van 'wait()' en 'notify()'

Je maakt ergens een dummy object aan: 'dummy'.

In je printende Thread doe je :

while (true)

{

println(var);

dummy.wait(); //de thread wordt nu gepauzeerd tot iemand dummy.notify() oproept.

}

In de setVar() methode zet je na alles wat er in die methode staat:

dummy.notify();

Als de variabele gewoon overgeschreven wordt zonder gebruik te maken van een methode, dan werkt bovenstaand proces natuurlijk niet.

Re: Thread in java laten slapen tot er een nieuwe waarde v/e variabele is

Geplaatst: za 08 aug 2009, 13:10
door meijuh