Bonjour,
après plusieurs problèmes avec les threads, j'ai voulu vérifier quelque chose de simple. Or même ce code source simple ne fonctionne pas comme je veux. Voici le source :
///////// Class main /////////
public class Main {
/** Creates a new instance of Main */
public Main() {
}
public static void main(String[] args) {
NewClass thr = new NewClass();
thr.start();
}
}
///////////Class NewClass, celle du thread ////////////
public class NewClass extends Thread{
/** Creates a new instance of NewClass */
public NewClass() {
}
public void run()
{
while(true)
{
oh();
try
{
sleep(1000);
}
catch(InterruptedException e)
{
System.out.println("erreur thread update " + e);
}
}
}
public void oh()
{
Timestamp t3 = new Timestamp(0);
t3.setTime(System.currentTimeMillis());
System.out.println("update graphik " + t3.toString());
}
}
Ce que je veux faire est simple. Je veux que toutes les secondes, le thread m'affiche l'heure courante avec la fonction oh(). Le problème est qu'à l'exécution de ce prog, il se cré un décalage. La fonction oh() affiche :
12:08:18.117
12:08:19.118
12:08:20.119
Bref il se cré un décalage de 1 millisec toutes les secondes. Cette différence est très faible mais très importante pour moi. Pouvez-vous me corriger mon source pour qu'il m'affiche :
12:08:18.117
12:08:19.117
12:08:20.117
Un grand merci.