Класс фактурирования имеет всю логику, связанную с биллированием по стране. Он принимает результат из базы данных, а затем оплачивает пользователей. Класс Billing реализует Runnable. Я хочу выполнить биллинг параллельно в соответствии с параметром страны, так что огромное количество пользователей (5 миллионов +) выставляется очень быстро. Теперь для завершения требуется несколько часов и часов.ThreadPoolExecutor Запуск приложения
Я пытаюсь реализовать ThreadPoolExecutor для выполнения класса Billing, но я смущен как ?? В чем разница в следующем ИЛИ я делаю что-то неправильно? Пожалуйста, предложите !! Есть в целом 20 стран, но я вставляя здесь только 5.
//for 20 countries ThreadPoolExecutor (20,20,20.......)????
ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 5, 5, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(10), new ThreadPoolExecutor.CallerRunsPolicy());
executor.execute(new Billing("UK"));
executor.execute(new Billing("USA"));
executor.execute(new Billing("Germany"));
executor.execute(new Billing("Spain"));
executor.execute(new Billing("Italy"));
ИЛИ
ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 5, 5, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(10), new ThreadPoolExecutor.CallerRunsPolicy());
for(int i=0;i<5;i++) // for 20 countries i<20??
{
executor.execute(new Billing("UK"));
executor.execute(new Billing("USA"));
executor.execute(new Billing("Germany"));
executor.execute(new Billing("Spain"));
executor.execute(new Billing("Italy"));
}
while (! executor.isTerminated()) {
try{
executor.awaitTermination(100, TimeUnit.SECONDS);
}catch(InterruptedException iE)
{
iE.printStackTrace();
System.out.println("Executor Exception: "+ iE);
}
Заранее спасибо !!
Вы просто с просьбой о том, следует ли использовать этот 'for' цикл? Не совсем понятно, что вы имеете в виду. –
@TimBender ........... Я внесла поправки в свой вопрос ... –
@TimBender .. Я запутался в реализации ThreadPoolExecutor для выполнения класса фактурирования. Как мне реализовать? Нужно ли использовать цикл For внутри ThreadPoolExecutor? ИЛИ он будет запускать весь класс биллинга параллельно .. –