首页 > 解决方案 > 我的整个 android 应用程序的一个线程池

问题描述

TheadPoolExecuter像 - 网络操作和位图操作图像加载和其他类型的工作我可以为我的整个应用程序创建一个并在其上执行。

如果答案是否定的 -> 为什么?以及如何thread pool为每个操作创建?

或者如果是 -> 是否出现性能问题?

提前致谢。

标签: javaandroidperformancekotlin

解决方案


两种方法都有优点和缺点。

在单线程池的情况下(我想是单例实现):
➕你有一个提交后台任务的入口点
➕它很容易实现和控制生命周期
➖如果你有很多不同的快速任务和一些长时间运行的任务,很长当用户在 UI 中等待一些快速操作时,正在运行的任务可能会将所有线程保留在有限的池中

不同的线程池(一个池用于一种任务):
➕长时间运行的任务的线程池可以累积任务,而快速任务可以在它们自己的线程池中独立执行
➕您了解应用程序中有关任务的所有信息-您可以使用线程工厂为每种类型的任务微调池大小,设置线程优先级,初始堆栈大小等
➕如果您定义线程组和线程名称,它可以帮助您进行调试
➖有不同的线程池涉及硬控制它们的生活循环
➖ 这种实现不会在任务类分离不佳的情况下带来很多好处

无论如何,您都需要一些妥协和对优势的评估


推荐阅读