0

如果我Executors.newSingleThreadExecutor()用来获取一个ExecutorService,我可以为每个 Runnables 的执行设置超时吗?如果没有,是否有默认值?或者如果其中一个可运行对象需要很长时间才能执行,线程会被阻塞吗?

我已经阅读了 android 文档,但对我来说并不完全清楚(来自Executors.newSingleThreadExecutor() Android 参考):

创建一个使用单个工作线程在无界队列上运行的 Executor。(但请注意,如果该单线程在关闭前的执行过程中因失败而终止,则如果需要执行后续任务,则新线程将取代它。)任务保证按顺序执行,并且不会有多个任务处于活动状态在任何给定时间。与其他等效的 newFixedThreadPool(1) 不同,返回的执行程序保证不可重新配置以使用额外的线程。

4

1 回答 1

0

它是一种什么样的Runnable?AFIK,如果它不是Future,那么您不能对其设置超时。您可能还会将ThreadPoolExecutor上可设置的超时(池杀死空闲线程以恢复到核心池大小的时间)与单个任务的执行时间混淆。

于 2013-10-25T23:17:12.940 回答