tråde og sleep
I vort program skal vi gentagne gange kunne kalde en metode tilknyttet et objekt, som i dette tilfælde repræsenterer en motor. Når motorens køremetode kaldes med et tidsrum,skal objektet sende et signal til en anden objektype og efter at det ønskede tidsrum er gået sende et nyt signal. Undervejs i dette tidsrum skal det være muligt for andre objekter, at aflæse, hvor lang tid, der er gået af det tidsrum, motoren skal arbejde i. Dette er løst ved at lave en tråd af motorobjektet. Koden ser i grove træk ud som følger:public class Motor implements Runnable
Thread motorTråd=new Thread(this)
public void start()
this.start
public void kør(float t)
this.tid=(int) t*1000
this.kør=true
this.startTid=system.currentTimeMillis();
public synchronized void run()
{ while(true)
{ if(kør)
{ Thread.sleep(this.tid);
this.kør=false;}
else
Thread.sleep(200)}
}
public float aflæsKørtTid()
return (this.startTid-system.currentTimeMillis())
Problemet er så at man kan kalde de forskellige metoder en del gange, men pludselig holder der op med at ske noget og motorobjktet \"siger\" at det ikke er færdigt - hvad går der galt?
