Параллельное выполнение первого потока вместе с другими

401
05 февраля 2017, 11:55

Нужно вернуть json в котором находятся ссылки 5000+ файлов. Cоздаю модель

ModelAndView modelAndView = new JsonHelper().createModelAndJson(url);
return modelAndView;

В классе JsonHelper создается поток, в котором содержится List файлов и заполняется модель файлами.

 public ModelAndView createModelAndJson(String url) {
    JsonThread jsonThread = new JsonThread(url);
    Thread mainThread = new Thread(jsonThread);
    mainThread.start();
    try {
        mainThread.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return jsonThread.getModelAndView();
}

Поиск файлов так же идёт в потоках дальше. В итоге показывает всё корректно, но одновременного выполнения нет у первого потока, все остальные потоки отрабатывают параллельно и показывают результат сразу. Т.е первый созданный запрос работает отдельно от остальных и их запуск тормозит.

Answer 1

Метод join блокирует выполнение текущего потока до тех пор, пока mainThread не завершит работу. Таким образом выполнение вашего кода является последовательным.

READ ALSO
Как вставить пробел в строке между цифрами и буквами?

Как вставить пробел в строке между цифрами и буквами?

Есть строка типа "дом15/2"Каким образом можно найти границу между буквами и цифрами и поставить туда пробел

528
Отличие API level < 11 от API level > 11

Отличие API level < 11 от API level > 11

Какие есть важные отличия API level < 11 и API level > 11

535
Инициализация беззнакового массива

Инициализация беззнакового массива

Нужно задать константный массив-сигнатуруСейчас делаю так

422