我是第一次使用ThreadPools在我的android应用程序中执行多线程。过去,我创建了新线程来执行网络请求,数据库查询和密集算法。根据这篇文章new Thread(task).start() VS ThreadPoolExecutor.submit(task) in Android,使用线程池更好。

当我重新设计程序以使用ThreadpoolExecutor时,我一直在努力回答的问题是“如果一段时间内没有任何任务发送给我的threadPool,会发生什么?”例如,假设我正在构建一个从服务器提取信息并将其显示给用户的应用程序。用户还可以通过从服务器提取一组更新的数据来更新显示的信息。用户可以随时更新信息。两次更新之间可能长达几个小时。

这可以使用新的线程来完成,但是,每次最终用户刷新时,都必须为该线程分配新的内存。我希望做的是使用threadPool,这样我可以运行网络调用而不必每次都分配内存。但是,这基于两个假设。首先,我可以将线程池​​留在不确定的时间内,但仍然可以使用它。第二个是使用线程模型的方法符合良好实践。假设第二个是正确的,那么在关闭或自行终止线程池之前,我可以离开线程池多长时间而无需执行任何任务?

最佳答案

我相信,除非您在线程池上显式调用“ shutdown()”,否则它在应用程序的生命周期内仍然可用。

关于java - 线程池在android中终止之前,我可以离开线程池多长时间而没有任务?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30358544/

10-09 03:36