В соответствии с Java-параллелизмом на практике существуют следующие недостатки создания неограниченного потока:
Затраты на жизненный цикл потока
Создание потока и разборкане бесплатны.Создание потока требует времени и требует некоторой обработки со стороны JVM и ОС.
Потребление ресурсов
Активные потоки потребляют системные ресурсы, особенно память.Если потоков больше, чем доступных процессоров, потоки работают без дела.Наличие большого количества незанятых потоков может связать много памяти, оказать давление на сборщик мусора, а наличие множества потоков, конкурирующих за ЦП, также может привести к снижению производительности.Если у вас достаточно потоков, чтобы все процессоры были заняты, создание дополнительных потоков не поможет, а может даже повредит.
Стабильность
Существует ограничение на количествотемы могут быть созданы.Ограничение зависит от платформы и зависит от таких факторов, как параметры вызова JVM, запрошенный размер стека в конструкторе Thread и ограничения на потоки, размещенные базовой операционной системой.Когда вы достигнете предела htis, наиболее вероятным результатом будет OutOfMemoryError.Попытка восстановиться после такой ошибки очень рискованна;гораздо проще структурировать вашу программу, чтобы избежать превышения этого предела.
До определенной точки, большее количество потоков может улучшить пропускную способность, но после этого создание большего количества потоков просто замедляет работу вашего приложения и создаетслишком большое количество потоков может привести к ужасному сбою всего приложения.Чтобы избежать опасности, нужно ограничить количество потоков, создаваемых вашим приложением, и тщательно протестировать ваше приложение, чтобы гарантировать, что даже при достижении этого предела ресурсы не будут исчерпаны.
Создание неограниченных потоков может работать нормально во время прототипирования и разработки, а проблемы возникают только тогда, когда приложение развернуто и находится под большой нагрузкой.