开发者社区> 问答> 正文

频繁出现的问题:HandlerThread或ThreadPoolExecutor?

首先,我无法确定标题应该是什么,因此,如果标题不够具体,问题本身就是。

我们有一个使用前台服务并永远保持生命的应用程序,在此服务中,有频繁的数据库访问作业,网络访问作业等需要在后台线程上运行。一项工作本身消耗少量时间,但是这些工作本身很频繁。显然,它们需要在工作线程上运行,所以我在这里问我们应该遵循哪种设计。

HandlerThread是一种结构,它创建单个线程并使用队列执行任务,但始终循环并等待耗电的消息,同时ThreadPoolExecutor为每个作业创建多个线程并在作业完成时删除线程,但是由于线程过多,可能是泄漏,甚至是内存不足。作业计数可以是5,也可以是20,这取决于用户以某种方式执行的操作。并且,在2个作业之间,可能有5秒的间隔或一天的间隔,这完全取决于用户。但是,请记住,该应用程序将永远保持活动状态,并等待这些作业执行。

那么,对于这种特定情况,哪个更好使用?线程池执行程序还是处理程序线程?任何建议表示赞赏,谢谢。

展开
收起
垚tutu 2019-11-29 22:57:45 648 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载