Встречается на собеседованиях • сегодня

Можно ли создать 500 потоков

Да, теоретически можно создать 500 потоков в Java, но это не рекомендуется из-за высоких накладных расходов на память и переключение контекста. Каждый поток потребляет ~1MB памяти (стек по умолчанию) и создает нагрузку на планировщик ОС.

Пример создания 500 потоков:

java
for (int i = 0; i < 500; i++) {
    new Thread(() -> {
        // Логика потока
    }).start();
}

Лучше использовать ExecutorService с фиксированным пулом потоков (обычно оптимально количество ядер * 2):

java
ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2);

Причины избегать 500 потоков:

  • Риск исчерпания памяти (OutOfMemoryError)
  • Деградация производительности из-за contention
  • Ограничения ОС (например, ulimit в Linux)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы