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

简介: /** * AsyncTask相关总结 * * 1 异步任务AsyncTask在不同Android版本的差异. * 该差异主要是Android2.
/**
 *   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
 * 
 */

相关文章
|
7月前
|
算法 安全 调度
【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]
【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]
65 1
|
7月前
|
iOS开发
多线程和异步编程:解释 iOS 中的同步和异步任务的概念。
多线程和异步编程:解释 iOS 中的同步和异步任务的概念。
147 1
|
7月前
|
Java
多线程 | Thread 和 Runnable 执行流程的差异
多线程 | Thread 和 Runnable 执行流程的差异
63 0
|
缓存 Java 数据库连接
线程的创建、Lambda函数式接口?Runnable和Callable之间的适配?动态修改线程任务?这里带你图解Java线程池
上面只是提到了对于Thread执行任务的一种动态实现方法,肯定还有其他的。 那么动态实现有什么好处呢? 当我们有很多个任务的时候,我们如果一直使用new,再让gc的话,那么对于系统资源的消耗无疑是巨大的。 那么这个时候,如果我们固定一下,专门拿几个线程来处理并发任务呢?但是当并发任务很多又该怎么办? 这个时候就引入了池化思想 —— Pool 什么是池? 在学JDBC的时候我们知道了连接池,在学Spring的时候,我们又接触到了对象池。 其实按理来说线程池应该是大家在初学JavaSE的时候应该就遇到的,这里我们再来讲一下。 线程池,就是用一个容器来管理线程,这个容器叫做池(Poo
117 0
线程的创建、Lambda函数式接口?Runnable和Callable之间的适配?动态修改线程任务?这里带你图解Java线程池
创建多线程的方式二:实现Runnable接口
创建多线程的方式二:实现Runnable接口
67 0
|
调度
高并发编程-Thread#join方法的使用及使用场景分析
高并发编程-Thread#join方法的使用及使用场景分析
80 0
高并发编程-深入分析wait和sleep的区别并结合源码示例佐证
高并发编程-深入分析wait和sleep的区别并结合源码示例佐证
117 0
|
Java C++
高并发编程-Daemon Thread的创建以及使用场景分析
高并发编程-Daemon Thread的创建以及使用场景分析
115 0
|
安全 Java 调度
Java多线程、使用多线程的优点、线程的创建和使用、Thread类、创建线程的两种方式继承Thread类、实现Runnable接口、Thread类的有关方法、线程的调度、无效的源发行版、线程的分类
Java多线程、使用多线程的优点、线程的创建和使用、Thread类、创建线程的两种方式继承Thread类、实现Runnable接口、Thread类的有关方法、线程的调度、无效的源发行版、线程的分类
Java多线程、使用多线程的优点、线程的创建和使用、Thread类、创建线程的两种方式继承Thread类、实现Runnable接口、Thread类的有关方法、线程的调度、无效的源发行版、线程的分类
线程的3种实现方式并深入源码简单分析实现原理(3)
线程的3种实现方式并深入源码简单分析实现原理(3)
142 0
线程的3种实现方式并深入源码简单分析实现原理(3)