一种非常简便的实现Android多线程池的方法
来源:互联网 发布:淘宝新开店如何装修 编辑:程序博客网 时间:2024/04/30 03:29
开发Android过程中至少会遇到一个主线程,也称UI线程,这个线程是不允许阻塞的,否则会报错,比如最常见的获取网络资源、读写文件等操作,这些耗时操作都不能再主线程使用。这里介绍一个非常高效又非常简单实用的方法ExecutorService类。
ExecutorService类可以理解为线程池,开发者可以实例化一个该对象,在其中使用多个异步进行的操作。
ExecutorService接口继承了Executor接口,定义了一些生命周期的方法,如下定义。
public interface ExecutorService extends Executor { void shutdown(); List<Runnable> shutdownNow(); boolean isShutdown(); boolean isTerminated(); boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException; }
1、shutdown方法:这个方法会顺次地关闭ExecutorService,当我们调用这个方法时,ExecutorService停止接受任何新的任务且等待已经提交的任务执行完成(已经提交的任务会分两类:一类是已经在执行的,另一类是还没有开始执行的),当所有已经提交的任务执行完毕后将会关闭ExecutorService。
2、awaitTermination方法:这个方法有两个参数,一个是timeout即超时时间,另一个是unit即时间单位。这个方法会使线程等待timeout时长,当超过timeout时间后,会监测ExecutorService是否已经关闭,若关闭则返回true,否则返回false。一般情况下会和shutdown方法组合使用。
在使用时其实很简单,加入我们有三个task,都是耗时操作,开辟三个线程分别进行该操作,实现方法如下:
private ExecutorService mExecutorService;... mExecutorService = Executors.newSingleThreadExecutor(); mExecutorService.execute(new Runnable() { @Override public void run() { task1(); task2(); task3(); } });
mExecutorService = Executors.newSingleThreadExecutor();为实例化方法,在该类中还有其他几种实例化方法,每个方法有不同的作用,上面的代码是非常简单能够实现多线程的一种方法。
5 0
- 一种非常简便的实现Android多线程池的方法
- 一种简便实效的配置文件读写方法
- 一种简便实效的配置文件读写方法
- 一种简便实效的配置文件读写方法
- struts类型转换的一种简便方法
- 一种简便获取iPhone IMEI 的方法
- 一种更新yum源的简便方法
- [OC]Singleton的一种简便实现方式
- 实现静态页面的一种非常简单的方法
- 俯卧撑是一项非常简便而有效的健身方法
- Flash文字描边的一种简便方法
- 一种通过注册表简便修改IE代理服务器的方法
- 通过ODBC远程访问MySQL的一种简便方法
- VC下显示JPG,GIF图象的一种简便方法
- 编程创建XML文档的一种简便方法
- 一种保持VC对话框布局的简便方法
- 一种保持VC对话框布局的简便方法
- 一种保持VC对话框布局的简便方法
- 浏览器拦截跨域请求处理方法(firebug报错,同源策略不允许读取XXX上的远程资源)
- Opencv学习笔记(九)光流法
- CSS绝对定位和相对定位的区别
- Cocoa中回调delegate的方法时判断delegate是否已经被释放
- 解决vs2005调试时出现未加载符号的问题
- 一种非常简便的实现Android多线程池的方法
- ORA-28000: the account is locked-的解决办法
- redis单点故障方案
- WinCE系统下应用崩溃原因的分析方法
- service与activity通信 之 bindService
- arcgis api for flex 加载WMS带时间戳的气象服务
- Eclipse常用设置
- VS2010编译OpenSSL openssl-1.0.1h
- 黑马程序员__类加载器