Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
恒定线程循环时间Java_Java_Multithreading - Fatal编程技术网

恒定线程循环时间Java

恒定线程循环时间Java,java,multithreading,Java,Multithreading,我想要一个线程以每秒恒定的次数循环,例如一个以恒定帧速率为目标的渲染循环。如果所花费的时间超过允许的时间,循环显然会变慢 谢谢。怎么样 ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor(); ses.scheduleAtFixedRate(0, delay, TimeUnit.MILLI_SECONDS, new Runnable() { public void run() {

我想要一个线程以每秒恒定的次数循环,例如一个以恒定帧速率为目标的渲染循环。如果所花费的时间超过允许的时间,循环显然会变慢

谢谢。

怎么样

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

怎么样

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

怎么样

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

怎么样

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


您需要考虑两种基本技术:

  • 将更新模型或世界状态与渲染分开
  • 如果您已经这样做了,您可以在渲染内容之前睡眠/等待适当的时间,或者如果您落后于计划的时间表,可以跳过某些帧的渲染
  • 我可以推荐两个关于如何在java/android中实现类似游戏循环的好教程。 第一个关于基础的是
    第二个关注的是每秒恒定的帧数:。我认为这些经验教训也适用于正规java。

    有两种基本技术需要考虑:

  • 将更新模型或世界状态与渲染分开
  • 如果您已经这样做了,您可以在渲染内容之前睡眠/等待适当的时间,或者如果您落后于计划的时间表,可以跳过某些帧的渲染
  • 我可以推荐两个关于如何在java/android中实现类似游戏循环的好教程。 第一个关于基础的是
    第二个关注的是每秒恒定的帧数:。我认为这些经验教训也适用于正规java。

    有两种基本技术需要考虑:

  • 将更新模型或世界状态与渲染分开
  • 如果您已经这样做了,您可以在渲染内容之前睡眠/等待适当的时间,或者如果您落后于计划的时间表,可以跳过某些帧的渲染
  • 我可以推荐两个关于如何在java/android中实现类似游戏循环的好教程。 第一个关于基础的是
    第二个关注的是每秒恒定的帧数:。我认为这些经验教训也适用于正规java。

    有两种基本技术需要考虑:

  • 将更新模型或世界状态与渲染分开
  • 如果您已经这样做了,您可以在渲染内容之前睡眠/等待适当的时间,或者如果您落后于计划的时间表,可以跳过某些帧的渲染
  • 我可以推荐两个关于如何在java/android中实现类似游戏循环的好教程。 第一个关于基础的是

    第二个关注的是每秒恒定的帧数:。我认为这些经验教训也适用于Regalar java。

    测量当前循环所需的时间,取常数时间并减去测量的时间,让线程睡眠。我还没有尝试过任何东西,我正在考虑只使用thread.sleep,但这不会充分利用可用的时间。在渲染帧之后,您还需要做什么?测量当前循环所需的时间,使用常量时间并减去测量的时间,让线程睡眠。我还没有尝试任何操作,我正在考虑只使用thread.sleep,但这不会充分利用可用的时间。在渲染帧之后,您还需要做什么?测量当前循环所需的时间,使用常量时间并减去测量的时间,让线程睡眠。我还没有尝试任何操作,我正在考虑只使用thread.sleep,但这不会充分利用可用的时间。在渲染帧之后,您还需要做什么?测量当前循环所需的时间,使用常量时间并减去测量的时间,让线程睡眠。我还没有尝试任何操作,我正在考虑只使用thread.sleep,但这不会充分利用可用时间。在渲染帧之后,您还需要做什么?thread.sleep应该在try-catch块中否?中断异常等等……例如,如果系统时钟设置为一小时后会发生什么?@user2248702在第二种情况下,这意味着一小时内不会发生任何事情。注意:这与夏时制结束时不同,因为这不会更改GMT时间。如果您关心这个问题,您可以像ScheduledExecutorService一样使用System.nanoTime()。Thread.sleep应该在try-catch块中否?中断异常等等……例如,如果系统时钟设置为一小时后会发生什么?@user2248702在第二种情况下,这意味着一小时内不会发生任何事情。注意:这与夏时制结束时不同,因为这不会更改GMT时间。如果您关心这个问题,您可以像ScheduledExecutorService一样使用System.nanoTime()。Thread.sleep应该在try-catch块中否?中断异常等等……例如,如果系统时钟设置为一小时后会发生什么?@user2248702在第二种情况下,这意味着一小时内不会发生任何事情。注意:这与夏时制结束时不同,因为这不会更改GMT时间。如果您关心这个问题,您可以像ScheduledExecutorService一样使用System.nanoTime()。Thread.sleep应该在try-catch块中否?中断异常等等……例如,如果系统时钟设置为一小时后会发生什么?@user2248702在第二种情况下,这意味着一小时内不会发生任何事情。注意:这与夏时制结束时不同,因为这不会更改GMT时间。如果您关心这个问题,可以像ScheduledExecutorService一样使用System.nanoTime()。