ScheduledExecutorService
全部标签 目标:每隔一段时间执行某些代码。问题:在性能方面,是否存在显着差异:while(true){execute();Thread.sleep(10*1000);}和executor.scheduleWithFixedDelay(runnableWithoutSleep,0,10,TimeUnit.SECONDS);?当然,后一种选择更洁净。然而,我想知道我是否应该开始一次名为“花几天时间重构遗留代码来告别Thread.sleep()”的冒险。更新:此代码运行在超/兆/超高负载环境中。 最佳答案 您正在处理以数十秒为单位的sleep时间。
目标:每隔一段时间执行某些代码。问题:在性能方面,是否存在显着差异:while(true){execute();Thread.sleep(10*1000);}和executor.scheduleWithFixedDelay(runnableWithoutSleep,0,10,TimeUnit.SECONDS);?当然,后一种选择更洁净。然而,我想知道我是否应该开始一次名为“花几天时间重构遗留代码来告别Thread.sleep()”的冒险。更新:此代码运行在超/兆/超高负载环境中。 最佳答案 您正在处理以数十秒为单位的sleep时间。
以给定速率安排一段Java代码的最简单方法是什么? 最佳答案 在Java5+中,带有ScheduledExecutorService:ScheduledExecutorServiceexec=Executors.newSingleThreadScheduledExecutor();exec.scheduleAtFixedRate(newRunnable(){@Overridepublicvoidrun(){//dostuff}},0,5,TimeUnit.SECONDS);上面的方法是受欢迎的。在Java5之前,您使用Timer和T
以给定速率安排一段Java代码的最简单方法是什么? 最佳答案 在Java5+中,带有ScheduledExecutorService:ScheduledExecutorServiceexec=Executors.newSingleThreadScheduledExecutor();exec.scheduleAtFixedRate(newRunnable(){@Overridepublicvoidrun(){//dostuff}},0,5,TimeUnit.SECONDS);上面的方法是受欢迎的。在Java5之前,您使用Timer和T
我有一个ScheduledExecutorService定期使用scheduleAtFixedRate(Runnable,INIT_DELAY,ACTION_DELAY,TimeUnit.SECONDS);我还有一个与此调度程序一起使用的不同Runnable。当我想从调度程序中删除其中一项任务时,问题就开始了。有没有办法做到这一点?使用一个调度程序处理不同的任务是否正确?实现这一点的最佳方法是什么? 最佳答案 简单地取消scheduledAtFixedRate()返回的future://CreatetheschedulerSched
我有一个ScheduledExecutorService定期使用scheduleAtFixedRate(Runnable,INIT_DELAY,ACTION_DELAY,TimeUnit.SECONDS);我还有一个与此调度程序一起使用的不同Runnable。当我想从调度程序中删除其中一项任务时,问题就开始了。有没有办法做到这一点?使用一个调度程序处理不同的任务是否正确?实现这一点的最佳方法是什么? 最佳答案 简单地取消scheduledAtFixedRate()返回的future://CreatetheschedulerSched
情况我有一个Runnable。我有一个使用带有scheduleWithFixedDelay的ScheduledExecutorService来安排这个Runnable执行的类。.目标我想改变这个类来安排Runnable以无限期地执行固定延迟要么,或直到它运行了一定次数,具体取决于某些参数传递给构造函数。如果可能,我想使用相同的Runnable,因为它在概念上应该是“运行”。可能的方法方法#1有两个Runnables,一个在多次执行后取消调度(它保持计数),另一个不:publicclassMyClass{privateScheduledExecutorServicescheduler=E
情况我有一个Runnable。我有一个使用带有scheduleWithFixedDelay的ScheduledExecutorService来安排这个Runnable执行的类。.目标我想改变这个类来安排Runnable以无限期地执行固定延迟要么,或直到它运行了一定次数,具体取决于某些参数传递给构造函数。如果可能,我想使用相同的Runnable,因为它在概念上应该是“运行”。可能的方法方法#1有两个Runnables,一个在多次执行后取消调度(它保持计数),另一个不:publicclassMyClass{privateScheduledExecutorServicescheduler=E
我使用ScheduledExecutorService,我希望它每10秒执行一次计算,持续一分钟,然后在该分钟后返回新值。我该怎么做?例子:所以它收到5它加+1六次然后它应该在一分钟后返回我11的值。到目前为止我有但没有用的是:packagecom.example.TaxiCabs;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.ScheduledFuture;importstaticjava.util.
您好,我在网上读到,我们可以使用警报管理器和ScheduledExecutorService安排我们想要在特定时间间隔运行的任何事情。我想知道它们有什么区别,什么时候用什么提前致谢。 最佳答案 ScheduledExecutorService是在您的进程中。如果您的进程由于其他原因已经存在,例如它正在提供前台UI,并且您想使用ScheduledExecutorService进行定期工作,那很好。但是,一旦您的应用移至后台,其进程可能会随时消失,并带走您的ScheduledExecutorService,并且您将不再定期获得控制权。A