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

Как работал с многопоточностью

Работа с многопоточностью в Java включает создание потоков (Thread), управление их выполнением и синхронизацию доступа к общим ресурсам. Основные подходы:

  1. Создание потоков:
    • Наследование от Thread и переопределение run().
    • Реализация Runnable и передача в конструктор Thread.
java
// Через Runnable
Thread thread = new Thread(() -> System.out.println("Running"));
thread.start();
  1. Синхронизация:
    • Ключевое слово synchronized для методов или блоков.
    • Использование ReentrantLock, Semaphore и других классов из java.util.concurrent.
java
// Синхронизированный метод
public synchronized void increment() {
    counter++;
}
  1. Пул потоков (ExecutorService):
    • Управление множеством потоков через Executors.
java
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Task executed"));
  1. Потокобезопасные коллекции:
    • ConcurrentHashMap, CopyOnWriteArrayList и др.

Важно учитывать race conditions, deadlocks и эффективность синхронизации. Для сложных сценариев используются CompletableFuture, ForkJoinPool и другие инструменты из java.util.concurrent.

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

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

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

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