Repetir uma Thread a cada 1Milisecond

eu to tentando fazer uma Thread, ou somente um loop que n pare o programa todo. o importante é que ele aconteça exatamente 1 vez por milisegundo
então eu tentei o seguinte codigo:

[code]import java.util.Timer;
public class main {

public static void main(String[] d){
    Timer time = new Timer();
    time.schedule(new Mainloop(), 500, 1);
}

}[/code]
e

[code]public class Mainloop extends TimerTask{

private static GameObject[] toUpdate = new GameObject[3600000];
private static int actualindex = 0;
@Override
public void run() {
    try {
        toUpdate[actualindex].Update();
        toUpdate[actualindex++] = null;
    } catch (Exception e) {
        System.out.println(actualindex++);
    }
    // outros metodos irrelevantes
[/code]

o problema é que o Timer n consegue fazer 1 a cada milisecond, ele faz tipo… 1 a cada 15 miliseconds. e eu sei que n é problema do computador ser mt lento pq se eu mando ele rodar um loop infinito:

while(true){ try { toUpdate[actualindex].Update(); toUpdate[actualindex++] = null; } catch (Exception e) { System.out.println(actualindex++); }
ele faz 10000 vezes por segundo… o que da 10x mas que o nessessario…

eu procurei na internet e parece que usar aqueles “Realtime” resolveriam o problema, mas é tudo pago pelo que percebo… tem algo que vem no JDK 1.6 que eu possa usar?

A precisão contida nos relógios da maioria dos sistemas operacionais é de um sexagésimo de segundo, ou seja, em torno de 16 milisegundos.

Acredito que você não vai conseguir fazer com uma precisão assim, não interessa quão veloz é o teu processador.

Uma tentativa é utilizar o System.nanoTime();
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#nanoTime()

Mas não se engane, esses nanosegundos são medidos através de uma heurística.

Ah, se conseguir, por favor me informe! Mudaria minhas perspectivas… :-o