我的整个 android 应用程序的一个线程池

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

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

或者如果是 -> 是否发生性能问题?


米琪卡哇伊
浏览 114回答 2
2回答

拉丁的传说

这两种方法都有优点和缺点。在单线程池的情况下(我想是单例实现):➕ 你有一个入口点来提交后台任务➕ 很容易实现和控制生命周期➖ 如果你有很多不同的快速任务和一些长时间运行的任务,很长正在运行的任务可能会将所有线程保留在有限的池中,而用户在 UI 中等待一些快速操作不同的线程池(一种任务一个池):➕ 长时间运行任务的线程池可以累积任务,而快速任务可以在自己的线程池中独立执行➕ 你对你的应用程序中的任务了如指掌 - 你可以使用线程工厂为每种类型的任务微调池大小,设置线程优先级,初始堆栈大小等➕ 如果您定义线程组和线程名称,它可以帮助您进行调试➖ 涉及不同的线程池来硬控制它们的生命循环➖这个实现不会在任务类分离不佳的情况下带来很多好处无论如何,您需要做出一些妥协并评估优势

慕姐8265434

我认为你可以做到这一点,并且根据oracle 文档应该可以提高你的表现:线程池解决了两个不同的问题:由于减少了每个任务的调用开销,它们通常在执行大量异步任务时提供改进的性能,并且它们提供了一种限制和管理资源的方法,包括在执行集合时消耗的线程任务。每个 ThreadPoolExecutor 还维护一些基本的统计信息,例如已完成的任务数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java