J
jamesjames
Gast
hallo,
ich benötige einen Countdown der meinetwegen immer bis 4 sekunden hochzählt und dann eine Aktion ausführt. Dafür habe ich eine Timer-Klasse geschrieben die den aktuellen Sekundenstand (getTimer()) zurückgibt. Dieser wird von der Klasse Updater in einer endlosschleife (while(true)) abgefragt und mit der maximalen Sekundenanzahl verglichen und dann gegebenenfalls resettet. Dies ist nicht gerade elegant habe ich das Gefühl und trotz Threads ist die Geschichte superlahm.
Kann ich da wohl irgendwas optimieren oder gibts einen besseren Lösungsansatz?
ich benötige einen Countdown der meinetwegen immer bis 4 sekunden hochzählt und dann eine Aktion ausführt. Dafür habe ich eine Timer-Klasse geschrieben die den aktuellen Sekundenstand (getTimer()) zurückgibt. Dieser wird von der Klasse Updater in einer endlosschleife (while(true)) abgefragt und mit der maximalen Sekundenanzahl verglichen und dann gegebenenfalls resettet. Dies ist nicht gerade elegant habe ich das Gefühl und trotz Threads ist die Geschichte superlahm.
Kann ich da wohl irgendwas optimieren oder gibts einen besseren Lösungsansatz?
Code:
Timer timer = new Timer();
Updater updater = new Updater();
public class Updater extends Thread implements Runnable{
public Updater(){
new Thread(this).start();
this.setPriority(Thread.MIN_PRIORITY);
}
public void run(){
while (true){
timer.update();
if (timer.getTimer() >=4000){
System.out.println(timer.getTimer());
timer.reset();
}
}
}
}
public class Timer{
long t1=System.currentTimeMillis();
long t2=0;
public Timer(){}
public void update(){
t2 =System.currentTimeMillis()-t1;
}
public long getTimer(){
return t2;
}
public void reset(){
t1=System.currentTimeMillis();
t2=0;
}
}