AsyncTask的版本差异及其与Thread的使用场景

/**
 *   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
 *
 */

时间: 2024-10-06 14:59:01

AsyncTask的版本差异及其与Thread的使用场景的相关文章

BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法

最近一直在做互金平台,做到后台提交表单的时候出现验证提交数据一直没有提交的问题.于是百度了一下.果然是版本问题造成的.幸好找到了问题所在.我一直仿照的是东钿原微信平台的做法,但是使用byond的后台框架,可能版本不一样,所以造成 submitHandler: function(validator, form, submitButton) { // 版本号0.4.5支持 // 版本号v0.5.2-dev不再支持submitHandler配置 } 这个方法一直是无效的无法执行.百度搜到就是以下解决办

广播接收者的特点和版本差异

* 特点:只要广播接收者安装到手机上,不管应用程序有没有启动,系统发出广播后,注册了这个广播的接收者,都可以接受这个广播. * 版本差异:如果用户强行停止了接收者的应用程序,系统发出广播时,在低版本可以接受广播:在高版本,google工程师为了安全,就接收不到这个广播了,如果想接受这个广播,冲新启动一次应用即可.

oracle中WMSYS.WM_CONCAT函数的版本差异

昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到问题是由一个SQL语句引起的. SQL语句如下: WITH PXQ_TASK_TEMP AS (SELECT A.DISTRIBUTE_DATE,          A.APP_NO,          A.TASK_ID,          A.TASK_NO,          A.ACTUAL

网页浏览器内核识别及版本差异

主流浏览器及采用渲染内核(更多见http://www.iplaysoft.com/browsers-engine.html): Trident内核:IE系列 WebKit:Chrome.Safari Gecko:Firefox内核 国内常用双核浏览器:最主流的"双核"浏览器基本都是Trident/WebKit架构,360极速浏览器.世界之窗浏览器极速版.傲游3搜狗浏览器3.QQ浏览器.枫树浏览器.快快浏览器.百度浏览器.阿云浏览器(后期版本).太阳花浏览器,其中最奇葩的是傲游3.其它双

Unity各版本差异

Unity各版本差异 version unity 5.x 4.x  2017 差异 特点 首先放出unity的下载地址,然后再慢慢分析各个版本.再者unity可以多个版本共存,只要不放在同一目录下. https://unity3d.com/cn/get-unity/download/archive 之前unity有 f和p的区别,f:full 完整版本,p:patch 补丁.多叨叨几句,f版具有新特性和功能,p版仅对现有版本所存在的bug进行修复.进入到2017.7.10后,版本号开始以年份.x

python从零开始 -- 第2篇之python版本差异

python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知识点,对于加深认识也是很有帮助. 让我们先从python发展史开始吧 这份官方文档着python详细的版本列表,这是中文版介绍,一长串的内容都是python生命力的体现,python在TIOBE排行榜上也是排名靠前,现已超越 c++ 成为探花,仅次于 Java 和 C,看到这里是不是感叹python

http协议各版本差异

http协议各版本差异 一.http协议介绍        http(Hypertext transfer protocol)超文本传输协议,它是互联网上应用最为广泛的一种网络协议,工作在应用层. 二.http协议发展        http协议目前有4个版本,其中1.0.1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议. http/0.9版本:1991年,原型版本,功能简陋,只有一个命令GET,只支持纯文本内容,该版本已过时. http/1.0版本: 1996年5

SVN--(Eclipse)在历史记录中比较版本差异

前言 在SVN中比较各版本的差异是非常重要的功能. 方式 看图说话 结果

Hibernate 5.X 版本中Exception in thread "main" org.hibernate.MappingException: Unknown entity: cn.xxx.p

最近开始使用最新版本的Hibernate5,所有的配置感觉都正确却还是没有结果. 使用如下: public static void main(String[] args) throws Exception { Configuration cfg = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.get