Android 对线程封装了:AsyncTask, HandlerThread和线程池。 有知道这三个如何选择吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 对线程封装了:AsyncTask, HandlerThread和线程池。 有知道这三个如何选择吗?相关的知识,希望对你有一定的参考价值。
android 对线程封装了:AsyncTask, HandlerThread和线程池。 有知道这三个如何选择吗?看了下觉得AsyncTask有点鸡肋, 当执行单个异步操作时HandlerThread完全可以替代它,而且效能会提高将近10倍,当执行多个异步操作时表面上看可以选择AsyncTask,因为AsyncTask对executor+handler进行了封装,但是AsyncTask只能执行一次,这一下就把他的优势去掉了。而线程池完全可以替代它,效能也会更高。那问题来了,为什么还会后AsyncTask呐。他有什么不可替代的贡献吗?这个问题实在时困扰我,希望大神们帮忙解答啊。
参考技术A AsyncTask性能不怎么高,而且还有内存泄漏的隐患。之所以现在没有删掉这个类库,是因为很多应用都是基于这个库的,Google这边一删,别人软件就崩了。 参考技术B AsyncTask 适合有大量任务的时候使用追问但是AsyncTask只能执行一次,如果执行大量任务那就要实例大量AsyncTask实例吗?这个开销不是很大吗?用线程池不是可以可以高效的搞定这样的需求吗?还请帮忙解疑答惑啊。多谢!
以上是关于Android 对线程封装了:AsyncTask, HandlerThread和线程池。 有知道这三个如何选择吗?的主要内容,如果未能解决你的问题,请参考以下文章
安卓Android开发:使用Executor线程池代替AsyncTask进行异步操作
安卓Android开发:使用Executor线程池代替AsyncTask进行异步操作
安卓Android开发:使用Executor线程池代替AsyncTask进行异步操作