Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

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

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.
Gebruikersavatar
317070
Artikelen: 0
Berichten: 5.609
Lid geworden op: za 28 feb 2009, 17:05

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

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.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-
Nvt
Artikelen: 0
Berichten: 99
Lid geworden op: di 17 jul 2007, 06:20

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

Voor threading:

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

Zie eventueel: Pausing Execution with Sleep

;)
Bert F
Artikelen: 0
Berichten: 2.589
Lid geworden op: vr 15 aug 2003, 20:37

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

Bedankt.
Dit klinkt alsof je een Event-systeem wilt hebben?
Wat bedoel je daar mee? Groeten.
Gebruikersavatar
317070
Artikelen: 0
Berichten: 5.609
Lid geworden op: za 28 feb 2009, 17:05

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

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...
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-
Gebruikersavatar
ZVdP
Artikelen: 0
Berichten: 2.097
Lid geworden op: za 16 jul 2005, 23:45

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

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.
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Terug naar “Informatica en programmeren”