AsyncTask的版本差异及其与Thread的使用场景
发布日期:2021-06-30 11:16:14
浏览次数:3
分类:技术文章
本文共 990 字,大约阅读时间需要 3 分钟。
/** * AsyncTask相关总结 * * 1 异步任务AsyncTask在不同Android版本的差异. * 该差异主要是Android2.3和Android3.0及其之后的差异 * * 差异内容: * 在Android2.3中AsyncTask的调用可以并发执行. * 因为它在一个线程池中被调用.该线程池有5个核心线程,且最大线程数为128个. * 比如:同时启动10个任务,有5个任务能够立刻执行,另外5个任务则需等待;当有一个任务执行完毕后,第6个任务才会启动,以此类推. * 因为线程池中最大能存放的线程数是128个,当我们尝试去添加第129个任务时,程序会崩溃. * * 在Android3.0及其以后AsyncTask的调用在默认情况同时只能有1个任务在执行. * 在AsyncTask中采用了SerialExecutor,它很类似于SingleThreadExecutor,即线程池中只有一个线程的线程池. * 所以在2.3之后调用asyncTask.execute(params)方法,同时只能有1个任务在执行.待该任务执行完成后再执行下一个任务. * 那么可以修改该默认设置么?当然是可以的. * 可以调用方法asyncTask.executeOnExecutor(executor, params); * 第一个参数executor就设置为一个自己配置的线城池 * * 2 AsyncTask和Thread的使用场景的区别 * AsyncTask简单灵活,不用考虑UI更新.但是要注意AsyncTask版本差异带来的问题,请参考上面的总结. * 当有大量的瞬时任务出现时应该考虑使用线程池,可以节省线程的创建和销毁的消耗 * * * * 参考资料 * 1 Nate的教程 * 2 http://androidxref.com/4.0.4/xref/ * 3 http://blog.csdn.net/guolin_blog/article/details/11711405 * 4 http://blog.csdn.net/chenzujie/article/details/9247243 * Thank you very much * */
转载地址:https://it9527.blog.csdn.net/article/details/40650619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月15日 21时17分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JAVA学习笔记8 - Stream 和 File I/O
2019-04-30
JAVA学习笔记9 - 异常
2019-04-30
JAVA学习笔记10 - 继承
2019-04-30
JAVA学习笔记11 - 接口interface
2019-04-30
JAVA学习笔记12 - 包package
2019-04-30
Android 开发学习笔记 00 - Getting Started
2019-04-30
【学习笔记】Android Activity
2019-04-30
【学习笔记】Android Fragments
2019-04-30
Android使用Retrofit_00_Getting Started
2019-04-30
Android使用Retrofit_01_OAuth2 + GitHub
2019-04-30
Django + REST学习笔记
2019-04-30
【转载】将Ubuntu16.04 中gedit在仅显示一个文件时显示文件名tab
2019-04-30
fstream 对象多次使用时注意clear
2019-04-30
调试 LenaCV 3D Camera (Linux)
2019-04-30
OpenCV杂记 - Mat in C++
2019-04-30
lnmp部署
2019-04-30