У меня есть веб-сервис, который в одном из своих веб-методов создает два потока и вызывает еще два веб-сервиса для вставки данных. Теперь ожидается, что мой исходный веб-сервис будет параллельно принимать вызовы в диапазоне от 1000 до 10 000. Итак, вы можете понять, что для каждого такого вызова мой веб-сервис создаст еще два потока. Я уже настроил свой сервер приложений на такую большую нагрузку. поверьте мне.
Я использовал Executor с фиксированным размером пула потоков, используя будущие объекты в моей исходной веб-службе, но обнаружил, что вызовы, сделанные к двум другим веб-службам, кажутся обрабатываются последовательно. Я проверил все руководства/фрагменты кода. Мой код кажется правильным.
Код: Выделить всё
ExecutorService executor = Executors.newFixedThreadPool(size);
Future futureOne = executor.submit(new MyThread(serviceOne, data));
Future futureTwo = executor.submit(new MyThread(serviceTwo, data));
bSuccessfulOne = futureOne.get();
bSuccessfulTwo = futureTwo.get();
Ввиду первого параграфа, который я написал, существует ли какая-либо структура многопоточности/параллельного выполнения заданий/просто какое-то здравое программирование, которое могло бы помочь параллельно обрабатывать вызовы этих веб-служб. Если есть, предложите.
Подробнее здесь:
https://stackoverflow.com/questions/147 ... eb-service