FPSを実装する場合、Threadのrun()の中でThread.sleep()使うだけでもいいんでしょうか?
たとえば、sleep(10)とすれば20msごとにrun()(1フレームの処理)が実行されるので50FPSになりますか?

それともrun()の中を無限ループにしてThread.sleep()を使わずif文で

if (System.currentTimeMillis() - temp > 20) {
  temp = System.currentTimeMillis();
1フレームの処理
}

とした方がいいでしょうか?
どんな性能のマシンでも大体50FPSを保つようにしたいと思っているんですが。一般的な
方法はどうやるのでしょう。ヒントお願いします。