У меня есть простое приложение java, которое вычисляет простые числа до определенного заданного пользователем номера и выводит цифры. Я построил на нем четыре отдельных потока, которые повторяются через 4 отдельных диапазона чисел. Как только все 4 потока завершили свои итерации, я хочу напечатать окончательный ArrayList.Как я могу запланировать заявление печати после завершения 4 независимых потоков?
В настоящее время я получаю исключение ConcurrentModificationException, потому что после того, как я запустил 4 потока, следующая строка кода является оператором печати, который пытается распечатать ArrayList, который в этот момент изменяется хотя бы одним из все еще активных потоки.
Поэтому я хочу, чтобы оператор печати выполнялся после того, как все 4 потока погибли. Кроме того, я хотел бы сделать это, не используя прядильный контур. У меня нет ничего особенного против использования цикла закрутки, за исключением того, что я думаю, что есть лучший способ сделать это, и мне, вероятно, придется назначать большие приоритеты для 4 потоков, чтобы предотвратить использование вращающейся петли значительного количества ЦПУ.
Спасибо, он отлично работает. Я очень рад, что узнал об этом, поскольку я могу предвидеть использование этого в будущем для реальных проектов. – fvgs
Вы могли бы даже поставить задачу печати в свою собственную нить, поэтому основной поток может сделать что-то еще. –