android 大数据量的读写
来源:互联网 发布:qq克隆音乐软件 编辑:程序博客网 时间:2024/06/06 05:20
在android中,后台服务做一些大数据量的读写操作
这个时候是否可以考虑分批处理,按这个思路,如果我们创建一个线程去打开文件把两千多条数据写入,这个时候虽然是在子线程中,但是你会发现还是容易cpu100%
这个时候就需要考虑每次写200百条数据,是否可以在主线程中,把这些200条数据封装成对象,然后放入队列queue中
然后每次每次执行完一个再执行队列中的下一个分批对象,在此期间可以Handler来Handler.postDelayed(runnable,delayMillis);
而delayMillis的参数是最好是每个分批包不一样的,即第一个分批包是1秒后执行,第二个分批包是6秒后执行,以此类推,这样就会避开5秒内
因为读写文件出现两个cpu高峰值,为了防止读写文件在主线程中占用cpu高,导致其他按键广播或其他界面操作无响应而anr,
需要考虑放入子线程中执行,而Handler.postDelayed的第一参数runnable执行是主线程的多任务并发,runnable不是一个线程,
这里可以在该runnable里面创建一个线程,即在主线程多任务的runnable的run方法中创建一个子线程,如果这个时候new一个线程
则会有很多线程被创建,可以考虑如下
public void run() {Log.d(TAG,"===>Thread.id=" + Thread.currentThread().getId());executor.execute(new Runnable() { @Override public void run() { Log.d(TAG,"===>execute child Thread.id=" + Thread.currentThread().getId()); handleBatchData( param......); } });}
这里的executor是 private Executor executor = Executors.newCachedThreadPool();
这样你会发现线程的execute child Thread.id= 的值是一样的,这里你会体会到线程池的好处
以上是一些想法,不知道是否有更好的处理方法
- android 大数据量的读写
- 大数据量的文件读写 java nio的完全发挥
- spring Batch实现数据库大数据量读写
- spring Batch实现数据库大数据量读写
- spring Batch实现数据库大数据量读写
- 大数据量的处理
- 大数据量的算法
- 大数据量的导入
- 大数据量的算法
- 大数据量的算法
- 大数据量的处理
- 大数据量的算法
- 大数据量的算法
- 大数据量的算法
- 大数据量的算法
- 大数据量的算法
- Android, BaseAdapter 处理大数据量时的优化
- JAVA大数据量读写MYSQL出现严重死锁的解决方式
- spring mvc见解
- Air Raid hdu
- makefile编写
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- android 手机不需要phonegap 对键盘的隐藏与显示
- android 大数据量的读写
- UNIX网络编程——Socket/TCP粘包、多包和少包, 断包
- 存储过程分页
- S3C2440的linux系统下的/sys/class/gpio/操作
- monotouch 使用弱连接framework
- HDU 4639 Hehe 解题报告
- poj 1068 Parencodings
- 海量数据表,更改表字段类型问题
- 将Java Web 应用部署至 WebSphere 7