【发布时间】:2023-04-01 07:43:01
【问题描述】:
我即将编写我的第一个多线程 Java 应用程序。任务基本上是为一组产品创建销售报告;报告生成器类的产品和输入是完全独立的。
我相信我们可以创建多个线程(我想根据目标机器中的 CPU 数量从属性文件中控制要创建的线程数量)。使用它们异步生成报告。目前这是我在单线程程序中所做的。
我希望 Java 大师给我一些关于设计的意见。提前致谢。
报告生成器类的结构
public class SalesReportGenerator
{
//Variables
public Report prepareReport(Product prod){
//Implementation
}
//Helper methods used by SalesReportGenerator.prepareReport
}
我希望以多线程方法执行的当前实现。
public class ReportCreater
{
public static void main(String args[]){
ListProducts listProd = new ListProducts(); //Getting product list
ArrayList products = listProd.getProductAsArrayList(); //To store list of products
ArrayList reports = new ArrayList(); //To store reports
SalesReportGenerator salesGen = new SalesReportGenerator();
Report tempReport = null;
for (int i;i<products.size() ;i++ )
{
tempReport = salesGen.prepareReport(products.get(i));
reports.add(tempReport);
}
//At this point I will have reports for all the producst
//which I can use for processing, further reporting/saving.
}
}
我想知道首先创建一组线程并让他们选择产品并生成报告的最佳方法是什么。
谢谢。
【问题讨论】:
标签: java multithreading