Hallo,
ich habe jetzt einen Thread der mit dem größten gemeinsames Vielfachen von ein Paar werten ausgeführt wird, z.B. ist der ggt 2000ms wenn meine Zeiten für die Threads z.B.: 2000ms, 4000ms und 8000ms sind,
nun wird sendMessages ausgeführt und wenn z.B. sendMessages das erste mal ausgeführt wird dann ist 2000ms = 2000ms und es betrifft message1, wenn sendMessage das 2. mal ausgeführt wird, sind 4000ms vergangen und es ist message2 betroffen usw. nach message3 wird wieder von vorne angefangen,
Jetzt meine Frage: wie kann ich das am Besten realisieren, Zeit messen ist ja so eine Sache die nicht so genau ist, und ich müsste diese ja immer wieder auf 0ms setzen,
Hat da jemand eine Idee?
ich habe jetzt einen Thread der mit dem größten gemeinsames Vielfachen von ein Paar werten ausgeführt wird, z.B. ist der ggt 2000ms wenn meine Zeiten für die Threads z.B.: 2000ms, 4000ms und 8000ms sind,
nun wird sendMessages ausgeführt und wenn z.B. sendMessages das erste mal ausgeführt wird dann ist 2000ms = 2000ms und es betrifft message1, wenn sendMessage das 2. mal ausgeführt wird, sind 4000ms vergangen und es ist message2 betroffen usw. nach message3 wird wieder von vorne angefangen,
Jetzt meine Frage: wie kann ich das am Besten realisieren, Zeit messen ist ja so eine Sache die nicht so genau ist, und ich müsste diese ja immer wieder auf 0ms setzen,
Hat da jemand eine Idee?
Code:
timerTask.scheduleAtFixedRate(this, 0, gcd); // gcd ist z.B. 2000ms, wie oben erklärt
@Override
public void run() {
serverMessageArray.sendMessages(/* so hab ichs mal zum testen gemacht: Math.abs(new Random().nextInt()%4)*/);
}
public void sendMessages(int messageIndex) {
Message message = messages[messageIndex]; // in "messages" sind die message mit 2000, 4000 und 8000 drinnen
}