如果我Executors.newSingleThreadExecutor()
用来获取一个ExecutorService
,我可以为每个 Runnables 的执行设置超时吗?如果没有,是否有默认值?或者如果其中一个可运行对象需要很长时间才能执行,线程会被阻塞吗?
我已经阅读了 android 文档,但对我来说并不完全清楚(来自Executors.newSingleThreadExecutor() Android 参考):
创建一个使用单个工作线程在无界队列上运行的 Executor。(但请注意,如果该单线程在关闭前的执行过程中因失败而终止,则如果需要执行后续任务,则新线程将取代它。)任务保证按顺序执行,并且不会有多个任务处于活动状态在任何给定时间。与其他等效的 newFixedThreadPool(1) 不同,返回的执行程序保证不可重新配置以使用额外的线程。