/ / Постоянно време за конци на конци Java - java, многопоточна

Продължителност на цикъла на непрекъснато конец Java - java, multithreading

Искам да има нишка, която се контур на константаколичество пъти в секунда, например цикъл на изобразяване, който се стреми към постоянен кадър. Цикълът очевидно ще се забави, ако времето, което отнема, надвишава разрешеното време.

Благодаря.

Отговори:

3 за отговор № 1

Какво ще кажеш

ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
ses.scheduleAtFixedRate(0, delay, TimeUnit.MILLI_SECONDS, new Runnable() {
public void run() {
// do something
}
});

или

long delay = ....
long next = System.currentTimeMillis();
while(running) {
// do something
next += delay;
long sleep = next - System.currentTimeMillis();
if (sleep > 0)
Thread.sleep(sleep);
}

0 за отговор № 2

Има две основни техники, които трябва да имате предвид:

  1. отделно актуализиране на вашия модел или състояние на света от неговото визуализиране.
  2. Ако сте направили това, можете да заспите / изчакате подходящия период от време, преди да рендерирате неща, или да пропуснете изобразяването за някои кадри, ако изоставате от планирания си график.

Мога да препоръчам два добри урока за това как да внедрите нещо като игрови цикъл в java / android. Първо за основите е http://obviam.net/index.php/a-very-basic-the-game-loop-for-android/ а вторият има фокус върху постоянни кадри в секунда: http://obviam.net/index.php/the-android-game-loop/, Мисля, че уроците се отнасят и за редовен java.