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

Какой опыт с многопоточностью

Многопоточность в Java реализуется через Thread, Runnable, ExecutorService и высокоуровневые API (CompletableFuture, ForkJoinPool).

Ключевые моменты:

  • Синхронизация: synchronized, Lock, volatile.
  • Потокобезопасные коллекции: ConcurrentHashMap, CopyOnWriteArrayList.
  • Проблемы: deadlock, race condition, livelock.

Пример с ExecutorService:

java
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> {
    System.out.println("Task executed by " + Thread.currentThread().getName());
});
executor.shutdown();

Использование CompletableFuture:

java
CompletableFuture.supplyAsync(() -> "Async Result")
    .thenAccept(result -> System.out.println(result));

Опыт включает отладку deadlock через thread dumps, оптимизацию через thread pools и работу с асинхронными фреймворками (например, Spring WebFlux).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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