我正在建立一个Android应用程序,必须定期做一些服务。我发现使用< code > ScheduledThreadPoolExecutor 和< code > ScheduledExecutorService 比< code>Timer更好。
有人能解释一下ScheduledExecutorService
和ScheduledThreadPoolExector
的区别吗?哪款更适合Android?
更新
我刚刚发现这篇文章和这篇文章解释了实现重复周期性任务的几种方法之间的区别。在我的情况下,计划线程池专家
和警报管理器
更合适。
使用执行器创建schduledThreadPoolExector
你也可以看看这个
http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html
如果你想定期使用它,你应该使用这种方法
scheduleAtFixedRate (可运行、 长初始 Delay、 长周期、 TimeUnit timeunit)
这是一样的,schduledThreadPoolExector
是schduledExecutorService
的实现
ScheduledExecutorService
是一个接口(合约),ScheduledThreadPoolExector
实现了该接口。
由于不能直接实例化接口,因此必须通过直接实例化< code > ScheduledThreadPoolExecutor 或通过工厂方法(如返回< code > ScheduledThreadPoolExecutor 实例的< code > Java . util . concurrent . executors )来使用实现。
例如
ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture
查看Android的预定执行程序服务使用情况
我有一个关于执行器线程池的问题,一个在另一个里面运行。 假设我有一个带有调度方法的Spring服务,其他服务创建ExecutorService并运行一些操作方法 据我所知,默认情况下@调度的池大小为1。在此池中的线程内,我正在尝试创建具有更大池的新执行器服务。 所以问题是——执行将如何分布在CPU核上,执行器服务真的能并行工作吗?我有一种感觉,事实并非如此。我尝试在2个vCores和4个vCore
GNU 计划和自由软件基金会(the Free Software Foundation - FSF)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统。(GNU 是"GNU's Not Unix"的递归缩写,它的发音为"guh-NEW"。)各种使用linux 作为核心的GNU 操作系统正在被广泛的使用。虽然这
关于Java定时器类或ScheduledExecutorService接口,我可以在执行器线程(其他调度器)的运行方法(或TimerTask)内设置调度器(或定时器)吗? 案例研究:我有一个数据库,其中包含歌曲列表(10000首)和播放歌曲的时间表。 所以我想创建一个调度程序(比如1)(周期为1小时),它将搜索数据库,并为计划在一小时内播放的所有歌曲创建调度程序。 一小时后,scheduler1将
问题内容: 我已经阅读了几次此页面,只是没有看到GWT 和类之间的某些固有差异。我正在寻找以下各项的用例和适用性: ,和 这些似乎或多或少都在做着相同的事情,感觉您可以使用所有这些东西实现相同的目标。这仅仅是GWT的一种方式,提供了多种完成同一件事的方式吗?如果没有,请帮助我了解何时何地适当使用它们。 问题答案: 如果需要浏览器完成当前正在执行的操作,然后再告诉它执行其他操作,请使用 Schedu
我对方法的期望(根据我在中给出的理解,其中每次执行都是在前一个任务执行完成后安排的)应该在第1行之后创建两个线程。 一个用于计时器,它为任务生成另一个线程。一旦第一个任务线程死亡,将创建另一个任务线程并继续执行。但在调试点,我只看到一个线程对应于计时器。为什么不为实现可运行的任务执行线程? 我对scheduleAtFixedRate()方法的期望(根据我在javadocs中给出的理解,其中每个执行
我正在做一个生产线的模拟,它是通过Excel建立的。现在有一个,需要为每台机器自由设置工人班次,总共三个班次。 我的想法是创建三个不同的时间表,表示三个班次中的每一个,然后在ResourcePool中使用If语句设置每个班次的使用。如图所示,在此处输入图像描述 提前致谢