ExecutorService多线程扫描全盘路径
来源:互联网 发布:淘宝店铺最迟多久发货 编辑:程序博客网 时间:2024/06/02 13:15
多线程能节省好多时间。
List<File> rootDirs = new ArrayList<File>(); ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime() .availableProcessors()); for (String item : mStoragePaths) { File file = new File(item); if (IdentificationUtil.getStorageState(mWeakContext.get(), file.getAbsolutePath()).equals(Environment.MEDIA_MOUNTED)) { File[] files = new File(item).listFiles(); if (files != null && files.length != 0) { rootDirs.addAll(Arrays.asList(new File(item).listFiles())); } } } for (final File file : rootDirs) { executorService.execute(new Runnable() { @Override public void run() { scanDictionary(file, 2); } }); } executorService.shutdown(); try { executorService.awaitTermination(Integer.MAX_VALUE, TimeUnit.DAYS); } catch (InterruptedException e) { e.printStackTrace(); }
其中,Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());是获取CPU个数线程的线程池。
executorService.execute()执行的时候,只要有线程空闲就会执行任务。
shutdown()方法不是一个阻塞方法,本身执行很快,执行完后线程池仍可能处于运行中。
awaitTermination()方法是一个阻塞方法,它必须等线程池退出后才会结束自身。
0 0
- ExecutorService多线程扫描全盘路径
- unity3D 扫描全盘获取文件路径
- index 与全盘扫描
- oracle优化:避免全盘扫描
- ExecutorService多线程
- 取消卡巴斯基的“全盘扫描”提示
- 分享一位大神的Symbian全盘扫描
- Symbian AO实现的全盘扫描
- android4.4 ROM开发者全盘扫描解决方案
- win32 汇编实现全盘文件扫描功能(杀毒程序的扫描全盘文件功能)
- ExecutorService实现多线程socket
- Java多线程之ExecutorService
- ExecutorService实现java多线程
- ExecutorService 多线程处理
- Java多线程之ExecutorService
- Java多线程之ExecutorService
- JAVA多线程计算ExecutorService
- JAVA多线程之ExecutorService
- linux中将mongo作为系统服务启动
- 用C++实现一元多项式的四则运算包括数据的文件导入与导出
- 【java】类中使用getter和setter的优势
- Hibernate关联之 一对一连接表单向关联
- Big Endian 和 Little Endian
- ExecutorService多线程扫描全盘路径
- android免费天气预报接口api
- 协同OA的一大核心五大特征你知道吗?
- linux命令which whereis locate 命令
- Hibernate查询方式及关联
- Spring 源码解读 推荐流程
- Hive 查询
- 设计模式之模板方法模式---template method
- Nginx + Lua + redis (一)