【发布时间】:2014-01-26 15:34:28
【问题描述】:
我设计了一个 java 应用程序。一位朋友建议使用多线程,他声称将我的应用程序作为多个线程运行会显着减少运行时间。
在我的主类中,我进行了一些超出我们范围的操作来填充全局静态变量和哈希映射,以便在整个过程的生命周期中使用。然后我在数组列表的条目上运行应用程序的核心。
for(int customerID : customers){
ConsumerPrinter consumerPrinter = new ConsumerPrinter();
consumerPrinter.runPE(docsPath,outputPath,customerID);
System.out.println("Customer with CustomerID:"+customerID+" Done");
}
对于此循环的每次迭代,从机器中获取给定客户的 XML,对其进行解析并在解析后的数据上进行计算。之后,将处理后的结果写入文本文件(读取和写入的数据最多可达几个千兆字节,平均可达 50 MB)。多个迭代可以写入同一个文件。
我应该让这段代码多线程,这样每组客户都被带入一个独立的线程吗?
我如何知道要运行的最佳线程数?
在实现多线程时要考虑哪些最佳实践?
【问题讨论】:
标签: java multithreading