общественный тип ClearDownService {
приватные резьбы int;
приватное executorService ExecutorService;
общественное ClearDownService (резьбы int) {
если (резьбы < 1="">= 1. «);
}
this.threads = резьбы;
this.executorService = Executors.newFixedThreadPool (this.threads);
}
// iий доработало ваше Кодего итерирования для того чтобы принять вы имеет некоторое собрание предметов OrderModel
// что вы используете для того чтобы получить iterator. В виду того что вы используете JDK 1.5+, свой очень больше
// четкое и ремонтопригодное использовать Generics вместо бросать возвращение iterator.next ().
// iий также доработало ваше Кодего итерирования для использования встроенной стройки foreach.
checkOrders публики пустые (заказы собрания) {
// выступает защелка с иничиативой для общего количества заказов, вместо резьб.
//, котор это обеспечивает все заказы обработаны прежде чем этот метод завершает
окончательное startLatch CountDownLatch = новое CountDownLatch (orders.size ());
// в виду того что вы используете JDK 1.5+, более легкий для того чтобы прочитать и поддержать если вы используете generics
// и встроенное foreach вместо iterator
для (окончательная модель OrderModel: заказы) {
executorService.submit (новое Runnable () {
побежали свободное пространство публики, котор () {
попытка {
Календар теперь = Calendar.getInstance (TimeZone.getTimeZone («Европ/Лондон»));
если (isEligibleForClearDown, то (модель, master.getCleardownFields () .getClearDownReqFrom (), теперь)) {
если (model.getOrderFields () .hasParentOrderId, то ()) {
// добавляет все заказы ребенка к окончательному результату
results.add (модель);
} еще {
// добавляет заказы родителя к списку родителя
parentOrders.add (модель);
}
}
} окончательно {
// кладя это в окончательно блок обеспечивает он получает вызванным независимо
// всех исключений происходят в теле метода
startLatch.countDown ();
}
}
});
}
попытка {
startLatch.await (); ожидание // для всех предметов к вполне обрабатывать
} задвижка (InterruptedException e) {
LOGGER.error («прерванное исключение пока ждущ защелку комплекса предпусковых операций до end.");
}
}
}
|