Я пишу небольшую игру с Libgdx.
У меня есть поток Render[OpenGL], который продолжает вызывать render()
для всех объектов, и поток обновления, который продолжает вызывать update(double delta)
для всех объектов.
Поток обновления зацикливается намного быстрее. Должен ли я попытаться использовать какую-то синхронизацию, чтобы поток обновлений мог немного отдохнуть? Будет ли от этого польза?
Обновить
public void run() {
while(true){
nano = System.nanoTime();
long delta = nano - timestamp;
timestamp = nano;
accumulator+=(double)delta/BILION;
while(accumulator >= step){
update(step);
accumulator-=step;
}
long loc = (long) ((step -accumulator)*1000)+1;
try {
Thread.sleep(loc);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Я не знаю, проблема ли это, но мое текущее обновление составляет 2500-20000 кадров в секунду. Так что скорости обновления более чем достаточно.