(多线程计算 线程一:进行读取文件数据到线程队列,线程二:从线程队列中拉取数据进行MD5计算(抄袭了FFMPEG 播放器的 多线程解码的原理),从进度条可以看出几乎读文件线程与计算线程同步,读文件线程首先读出1个数据包 然后在读1个数据包(于此同时计算线程正在计算数据包的MD5)从并行速度上是一致的,计算线程完全不需要再进行多线程。(太小的文件建议不要使用多线程,反而降低速度)!
现在的瓶颈就在算法和IO,方面,如果IO提升使用内存映射(初期试验过 效果不明显,算法写的不好反而降低性能)。MD5算法网上页没有相关很好的优化版。