kostenloser Webspace werbefrei: lima-city


Relative Zeit in Millisekunden

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    aklasse

    Kostenloser Webspace von aklasse

    aklasse hat kostenlosen Webspace.

    EDIT: Lösung gefunden (unten)

    Hallo!

    Um auf verschiedenen Systemen (Android, PC) gleichzeitige Ereignisse genau zu timen, brauche ich eine Funktion, die mir eine Zeit auf Millisekunden genau zurückgibt.
    Wichtig ist vorallem, dass beide Uhren (auf den unterschiedlichen Systemen) zu einander nicht zu stark variieren.

    Daher ist eine Echtzeituhr, die eventuell durch Anpassungen verändert wird ungeeignet: (Pseudocode zur Veranschaulichung)

    Annahme: Beide System sind am Start genau synchronisiert.

    System1:
    Ereignis_um=Systemzeit + 5s
    while(Systemzeit <= Ereignis_um); // Warte
    doSomething(); // Nach 5 Sekunden ausführen

    System2:
    Ereignis_um=Systemzeit + 5s
    while(Systemzeit <= Ereignis_um); // Im Hintergrund verändert nun das System z.B. durch einen Synch zu einem Internet-Zeitserver die Systemzeit
    doSomething(); // wird zu einer anderen Zeit ausgeführt.


    Unter Android kenne ich SystemClock.uptimeMillis(). Diese wird nicht durch irgendwelche Hintergrundprozesse beeinflusst. Kennt ihr so etwas, das unter Java generell gültig ist?

    Vielen Dank und Beste Grüße
    Stefan


    EDIT:
    System.nanoTime() ist genau das, was ich gesucht habe.

    Beitrag zuletzt geändert: 30.1.2014 11:30:37 von aklasse
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Also, nur so: Das was du da machst bezeichnet man auch als "aktives Warten". Das braucht Ressourcen und Performance, und kann sowohl das System, auf einem Handy auch den Akku beeinflussen, da die CPU in der Zeit was macht.

    Mein Vorschlag wäre, dir mal hiermit was zusammen zu basteln: http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html
    Beispiele dafür findest du hier: https://stackoverflow.com/questions/2258066/java-run-a-function-after-a-specific-number-of-seconds
    Dadurch wird in 5Sek ein Event getriggert, welches dann abgearbeitet wird. Damit hast du kein aktives Warten mehr.

    Nur so als Hinweis.

    Liebe Grüße
  4. Autor dieses Themas

    aklasse

    Kostenloser Webspace von aklasse

    aklasse hat kostenlosen Webspace.

    Danke für die Info, das war aber nur Pseudocode um das System zu veranschaulichen. Umgesetzt wird es natürlich nicht im Polling-Betrieb.
    Das ganze wird Teil eines größeren Synchronisations-Protokolls.

    Beste Grüße
    Stefan
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!