如果多线程代码写在 主线程中 (可以用到主线程中的变量) 这些变量需要用final来修饰
public List<StatisticErrorBean> statisticAllProducerLog(final String reportS,
final String[] urls) throws IOException, ParseException {
final List<StatisticErrorBean> resultList = new ArrayList<StatisticErrorBean>();
final String mainFolder = "/opt/sasuapps/itrc/logs";
ExecutorService threadPool = Executors.newFixedThreadPool(10);
CompletionService<Object> completeService = new ExecutorCompletionService<Object>(
threadPool);
for (final String url : urls) {
completeService.submit(new Runnable(){
@Override
public void run(){
try{
List<StatisticErrorBean> errorBeanList = new ArrayList<StatisticErrorBean>();
System.out.println("url--------" + url);
String directoryURL = decorateDirectoryURL(url);
List<Link> list = client.readDirectory(mainFolder, directoryURL);
Map<String, String> allPath = new HashMap<String, String>();
for (Link link : list) {
allPath.put(link.getName(), mainFolder + "/" + link.getName()
+ "/main/error");
}
for (String key : allPath.keySet()) {
System.out.println("looking at path " + allPath.get(key));
Map<String, Integer> producerLog = statisticProducerLog(
allPath.get(key), reportS, url);
if (producerLog != null && producerLog.size() > 0) {
StatisticErrorBean bean = new StatisticErrorBean();
bean.setDate(reportS);
bean.setFeatureName(key);
bean.setErrorDetails(producerLog);
errorBeanList.add(bean);
}
}
combineList(resultList, errorBeanList);
}catch(Exception e){
e.printStackTrace();
}
}
}, null);
}
for (int i = 0; i < urls.length; i++) {
try {
completeService.take();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
threadPool.shutdown();
return resultList;
}
分享到:
相关推荐
总的来说,"场景助手2.0 Final简体中文"是一款强大的工具,它通过自动化和个性化设置,帮助用户在不同的使用场景间快速切换,提高生产力,优化设备使用体验。其Final版本的发布,意味着软件的成熟和完善,是用户升级...
《场景助手2.0 Final简体中文》是一款专为Max场景制作设计的高效工具,它极大地提升了3D建模和渲染过程中的工作效率。这款软件针对3ds Max用户,特别是那些在影视、游戏、建筑可视化等领域工作的专业人士。在本文中...
finalData是一款功能强大的数据恢复软件,适用于多种数据丢失场景。通过使用合法有效的注册码,用户可以解锁其所有高级功能,从而更有效地进行数据恢复操作。然而,在获取和使用注册码的过程中,需要注意合法性、...
《3Dmax场景助手2.0_final简体中文:提升后期制作效率的得力工具》 3Dmax场景助手2.0_final是一款专为3D设计师打造的实用工具,特别适用于那些希望提升工作效率,简化复杂操作的专业人士。这款软件的核心在于其强大...
直线教程网.txt可能是一个包含Final Glow插件使用教程的文档,帮助用户了解如何有效地利用该插件来优化他们的3D场景。这些教程通常会涵盖插件的安装步骤、界面介绍、参数调整以及实际案例的应用,旨在帮助初学者快速...
6. **企业级功能**:针对企业用户,FinalData 2.0提供了批量恢复、远程恢复、命令行操作等高级功能,适合处理大量数据和复杂场景。 7. **安全恢复**:在恢复过程中,FinalData不会对源磁盘进行任何修改,确保原始...
Final-IK提供了一套完整的IK解决方案,包括全身IK、脚踝IK、手指IK等,能够轻松处理各种复杂的运动场景,如角色爬行、跳跃、抓握等。 在Final-IK 2.1中,开发者可以发现以下主要特性: 1. **全身IK**:允许开发者...
- "FinalData使用方法及注意事项.url"是一个网页链接,指向FinalData的使用指南和注意事项。 - FDIDE.VXD是FinalData的一个驱动程序文件,可能用于与硬件交互。 总的来说,FinalData是一款强大的数据恢复工具,能够...
描述中提到的博客链接可能提供了更深入的分析和示例,包括可能遇到的问题、最佳实践以及在特定场景下使用`final`的好处。 标签中的“源码”可能意味着讨论会包含一些实际的Java代码示例,展示如何在源代码中应用`...
以下是对`final`关键字在不同场景下使用的详细介绍: 1. **final变量** - `final`修饰的局部变量一旦初始化后,就不能再改变其值。这有助于防止意外修改,增加代码的可预测性和安全性。 - 类级(静态)常量通常也...
这些功能覆盖了日常使用中最常见的数据丢失场景,为用户提供了一站式的解决方案。 误删除恢复是FinalData的核心功能之一。当用户意外地从硬盘、U盘或其他存储设备上删除文件时,这款软件能够深入磁盘扇区,查找并...
8. **兼容性广**:FinalData支持各种类型的存储设备,如硬盘驱动器、SSD、USB驱动器、记忆卡、移动电话等,适用于多种数据丢失场景。 9. **注册版优势**:相比于免费版,注册版可能提供更快的扫描速度、更多的技术...
3. **使用场景**: - **误删文件**:无论是用户误操作还是病毒感染导致的文件丢失,FinalData都能帮忙找回。 - **格式化恢复**:即使硬盘被格式化,FinalData也能在新的文件系统下找到之前的数据。 - **硬盘故障*...
3d插件 查找丢失贴图 删除空白文件 好用必备
FinalIK-1.3作为Unity的扩展,它提供了一套完整的IK解决方案,包括全身IK、脚部定位、手指IK以及头部和目光追踪等,适用于各种复杂的游戏场景和角色动画需求。 全身IK允许开发者设定角色的身体、手臂和腿部跟随目标...
### FinalData 数据恢复原理与操作流程详解 ...综上所述,FinalData是一款功能强大且易于使用的数据恢复软件,适用于多种复杂的数据丢失场景。通过遵循上述操作步骤,即使是普通用户也能轻松恢复丢失的重要文件。
Unity的资源导入系统会自动解析包内的所有资源,并将它们添加到项目中,这样开发者就可以在Unity编辑器内直接使用Final IK的功能。 在实际应用中,Final IK可以通过编写脚本或者使用内置的编辑器窗口进行设置和调整...
配合纳金网3dsMax技术交流论坛和Unity3D技术交流论坛等学习资源,开发者可以获取更多关于FinalIK的使用技巧和经验分享,提升自己的技能水平。同时,Unity 5.x 插件合集专用贴也提供了丰富的插件资源和社区讨论,是...
总结,Hibernate 5.2.10.Final版本不仅提供了基本的ORM功能,还在OSGi支持、JPA元模型生成、审计日志、地理空间数据处理以及Java 8 Optional接口的使用等方面进行了强化。这些特性使得该版本在企业级应用中表现出更...