美文网首页
从AsyncTask源码理解它的局限性

从AsyncTask源码理解它的局限性

作者: 古宇强 | 来源:发表于2018-08-29 00:07 被阅读20次

1.AsyncTask的局限性:一般用来执行少量且时间短的任务。

我们知道AsyncTask类中,维护着一个线程池类,而自android 3.2版本起,应用中所有的 AsyncTask 都共用一个线程池类,如果执行大量或时间长的话,可能会造成其他 AsyncTask 的阻塞。

2.找源码

1. 从构造器入手
2. crtl + f 查找 sDefaultExecutor,发现它是一个类变量,类变量,类变量
3.接下来继续 crtl + f 查找 THREAD_POOL_EXECUTOR,可以看到静态代码块里对THREAD_POOL_EXECUTOR进行了初始化,到这里可以看出所有 AsyncTask 都是共用一个线程池的了
4.再了解一点,AsyncTask 线程池的核心线程数和最大线程数都跟 CPU 的数量相关,任务序列的容量大小是128

相关文章

网友评论

      本文标题:从AsyncTask源码理解它的局限性

      本文链接:https://www.haomeiwen.com/subject/qsvcwftx.html