前提是这样子的:
多线程队列生成了对应有序的文件,然后由另外一个单线程合并这些分块的文件至单文件。 合成完毕后用 md5 或 sha-1 校验输出结果。
虽然单线程合并的时候已经装载了每个分块文件的输入流,但是在校验时还要重新装入一遍, 在配置稍微低一些的手机上去校验大文件时就比较吃力了,有没有可以优化的地方呢?
java 多线程 Android 算法
这个可以考虑下面3个方案: 1. 如果对内存不敏感,写文件的时候可以把内容都保存在内存中,写完文件再调用生成md5的方法就可以。 2. 使用PipedInputStream和PipedOutputStream,具体使用方法可以查jdk的api。这种方式要使用两个进程,写文件和生成md5分别由两个线程完成,多核处理器下运行效率和内存占用都很高效。 3. 查看MessageDigest的update方法,写文件的时候每写一个buffer,就update一下,最后再调用digest来生成最终的结果。
如何使一个线程暂停,执行其他的代码,执行结束后,线程后面的代码继续执行?
android 图库 发送通过 中加入自己的应用
最近出现上传到一半或者部分,就卡条
android 调用系统录音机并能返回含所录音频的
Android UI线程和子线程使用synchronized,UI线程阻塞但无法获取锁
fragment 没有startActivity(Intent intent,Bundle b...