Game/Music Application에서 구현하기 위한 timer를 구현해보고 있습니다.

쉽게 말하면 드럼머신 같은 건데요.
1ms 단위로 정확히 타이머가 작동하면 됩니다.

총 세가지 방법을 시도해보았으나 만족스럽지 않습니다.

1. Timer, TimerTask를 사용한 방법

TimerTask myTask = new TimerTask() {
    public void run() {
        Log.d("myTask", "run()");
    }
};
Timer timer = new Timer();
//timer.schedule(myTask, 5000);  // 5초후 실행하고 종료
timer.schedule(myTask, 5000, 3000); // 5초후 첫실행, 3초마다 계속실행

2. CountDownTimer를 이용한 방법
       new CountDownTimer( 100, 100 ){
                       @Override
                       public void onFinish() {
                       imgLamp.setImageResource(R.drawable.lamp);
                       }

                       @Override
                       public void onTick(long millisUntilFinished) {
                               // TODO Auto-generated method stub
                       }
       }.start();



3. handler를 이용한 방법
http://www.androidpub.com/4374

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
   //Do Something
}, 3000);

위 세가지 방법 모두 정확한 간격으로 타이머가 울리지 않습니다.
간격 테스트는 mp3파일 작은 것 하나를 타이머발생시 울리도록 하였습니다.

혹시...
Windows PC 또는 iPhone 급의 1ms 단위의 타이머 발생을 어떻게 하는 지
아시는 분이 계실지요?

감사합니다. ^^