Android线程池
mo_weifeng
任何新技术的诞生都是有原因的
展开
-
Android线程的正确使用姿势
进程优先级(Process Priority)进程的优先级从高到低依次分为五类,越往下,在内存紧张的时候越有可能被系统杀掉。简而言之,越是容易被用户感知到的进程,其优先级必定更高。进程的五个常用等级:一.前台进程(Foreground process) 前台进程是用户当前做的事所必须的进程,如果满足下面各种情况中的一种,一个进程被认为是在前台:进程持有一个正在与用户交互的Activity。进原创 2017-04-06 21:53:26 · 4689 阅读 · 1 评论 -
即拿即用-Android单线程断点下载
之前有看过一个著名的断点下载的框架MultiThreadDownload,用的是线程池开启下载任务,点击暂停的时候将断点的信息保存在数据库里面,下次拿出来继续下载,本文的思路也和这个差不多。 这篇文章的代码将会在上次写的《即拿即用-HttpURLConnection分别实现图片,文本,文件的请求》的GitHub项目里面继续更新。完整下载地址在文章最后 该例子在下载中多次点击开始和暂停对进度原创 2017-04-18 23:47:14 · 1504 阅读 · 0 评论 -
Android线程池(七)ExecutorService接口、Executor接口和ScheduledExecutorService接口的源码解析
ThreadPoolExecutor继承自AbstractExecutorService类,AbstractExecutorService类实现了ExecutorService接口,而ExecutorService类又继承自Executor接口。ScheduledExecutorService接口继承自ExecutorService接口。ExecutorService概念Executor 提供了管原创 2017-03-29 20:21:46 · 2270 阅读 · 0 评论 -
Android线程池(六)AbstractExecutorService类源码解析
ThreadPoolExecutor继承了AbstractExecutorService,而AbstractExecutorService又实现了ExecutorService接口。所以,根据多态,ThreadPoolExecutor可以看作是ExecutorService类型。 示例首先来看一段使用示例 ExecutorService recmdService = Executor原创 2017-03-27 20:26:10 · 1415 阅读 · 0 评论 -
Android线程池(五)Executors类源码解析
概要 // 每次只执行一个线程任务的线程池 ExecutorService singleTaskExecutor = Executors.newSingleThreadExecutor();可以看出,ThreadPoolExecutor与Executors类关系是非常密切的。在开发并发程序时,我们可能或多或少都要用到线程池来复用线程以达到较高的性能,但是我们自己写的线程原创 2017-03-26 15:36:39 · 583 阅读 · 0 评论 -
Android线程池(四)ThreadPoolExecutor类源码解析
使用ThreadPoolExecutor private final int CORE_POOL_SIZE = 4;//核心线程数 private final int MAX_POOL_SIZE = 5;//最大线程数 private final long KEEP_ALIVE_TIME = 10;//空闲线程超时时间 private final int BLOCK_S原创 2017-03-25 23:32:51 · 1570 阅读 · 0 评论 -
Android线程池(三)常用封装
AsyncTask中的线程池配置 //获取当前的cpu核心数 private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); //我们想在核心池中至少有2个线程,最多4个线程,更喜欢有1个小于CPU计数的CPU,以避免CPU背景饱和 //线程池核心容量 pr原创 2017-03-25 00:23:25 · 3339 阅读 · 0 评论 -
Android线程池(二)构造方法的参数详细说明
构造方法public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFa原创 2017-03-23 23:58:34 · 1627 阅读 · 0 评论 -
Android线程池(一)简单使用
Android线程池hreadPoolExecutor是什么相当于一个容器,容纳的是Thread或者Runable为什么要使用ThreadPoolExecutor1、每一个线程都是需要CUP去分配的,如果总是需要new thread,那么会大量耗费CPU资源,导致应用运行变慢,甚至oom2、ThreadPoolExecutor可以减少销毁和创建的次数,每个工作线程可以重复利用,可执行多个任务3、可以原创 2017-03-22 23:54:15 · 7910 阅读 · 0 评论 -
Android线程池(十)SynchronousQueue
xecutors给我们提供有这么一个预设线程池 :newCachedThreadPoolpublic static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,newSynchronousQueue()); }其中原创 2017-04-12 15:04:44 · 2136 阅读 · 0 评论 -
Android线程池(九) Runnable、Callable、Executor、Future、FutureTask关系解读
在JAVA中停止线程的方法有多种,有一种是结合ExecutorService和Future的使用,停止在线程池中超时的任务。 这种情况下处理的都是比较耗时的操作,比如请求资源,数据库查询等,当超过一定时间没有返回结果,就结束线程,提高响应速度。execute和submit方法开启一个线程任务的方式可以如下 public static ThreadPoolExecutor exe原创 2017-04-09 18:53:25 · 1159 阅读 · 0 评论 -
Android线程池(八)shutdown、awaitTermination、shutdownNow
shutdown、awaitTermination、shutdownNow的关系1、shutdown方法:这个方法会平滑地关闭ExecutorService,当我们调用这个方法时,ExecutorService停止接受任何新的任务且等待已经提交的任务执行完成(已经提交的任务会分两类:一类是已经在执行的,另一类是还没有开始执行的),当所有已经提交的任务执行完毕后将会关闭ExecutorService。原创 2017-04-08 19:42:01 · 2465 阅读 · 0 评论 -
Android防止输入框自动弹出
只需在AndroidManifest.xml里面设置即可 <activity android:name=".activity.BuildActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="portrait"原创 2017-11-10 18:12:28 · 2345 阅读 · 0 评论