【发布时间】:2011-09-01 19:04:43
【问题描述】:
我在 ejb 中有这段代码
for (PayrollEntry pe : payroll.getEntries()) {
recalculatePayrollEntry(pe);
}
CalculateTotals(payroll);
调用这个异步方法
@Asynchronous
public void recalculatePayrollEntry(PayrollEntry pe) {
// Calculate Payroll Entry;
pe.setEarningsEntries(newEarnings);
}
在调用 CalcuateTotals 之前等待所有这些重新计算执行的最佳方法是什么?
【问题讨论】:
-
只是一个评论,如果你等待所有作业完成,你可能不会获得异步处理的任何优势......特别是如果你有一个同步点(如数据库中的某一行)所有作业必须同步。
-
这些计算中的每一个都需要一段时间,而且它们只使用一个核心。由于它们都不相互依赖,因此我希望能够使用多个内核同时处理它们。
标签: java asynchronous concurrency glassfish ejb