ScheduledExecutorService or ScheduledThreadPoolExecutor

大城市里の小女人 提交于 2019-12-03 17:44:21

问题


I'm building an Android App which have to periodically do something in a Service. And I found that using ScheduledThreadPoolExecutor and ScheduledExecutorService is preferable to Timer.

Can anyone explain the difference between ScheduledExecutorService and ScheduledThreadPoolExecutor and which one is more suitable for Android?

Update

I just found this article and this post explain the difference between several way to implement repeating periodic tasks. In my case, ScheduledThreadPoolExecutor and AlarmManager is more suitable.


回答1:


ScheduledExecutorService is an interface (a contract) and ScheduledThreadPoolExecutor implements that interface.

Since you cannot directly instantiate an interface, you have to use implementation through instantiating ScheduledThreadPoolExecutor directly or through means of factory method such as java.util.concurrent.Executors that returns an instance of ScheduledThreadPoolExecutor.

e.g

ScheduledExecutorService scheduler =
 Executors.newScheduledThreadPool(1);

scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture

Have a look at Scheduled Executor Service Usage for Andriod




回答2:


This is the same, ScheduledThreadPoolExecutor is an implementation of ScheduledExecutorService




回答3:


Creating ScheduledThreadPoolExecutor Using Executors

you can also look this one

http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html

if you want to use it periodically, you should use this method

scheduleAtFixedRate (Runnable, long initialDelay, long period, TimeUnit timeunit)



来源:https://stackoverflow.com/questions/32498893/scheduledexecutorservice-or-scheduledthreadpoolexecutor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!