Привет. Такой вопрос. Есть тред, в нем есть цикл в котором он разбирает BlockingQueue, берет оттуда задания и обрабатывает. Появилась необходимость в некоторых случаях получать результат обработки этих заданий.
Джава я знаю не очень хорошо, так что сильно не пинайте ;)
Из того что есть в java я нашел Future, но как я понял для них придется все несколько переделать - нужно будет делать отдельный Callable для каждого задания, отправлять этот Callable в ThreadExecutor и получать обратно объект Future, с помощью которого можно дождаться обработки задания.
Но сейчас в очередь кладутся строки, а в новой схеме придется, если я все правильно понимаю, каждый раз создавать объект.
Не возникнет ли тут лишнего оверхеда?
Пока что в голову приходит отдельный хешмап, в который класть номера заданий, и заполнение его в треде по факту выполнения. Ну и синхронизация-ожидание. Но вариант с Callable выглядит проще - меньше писать.
Какие есть еще хорошие практики/классы :) чтобы получать результат от тредов?
Спасибо!