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

Какие знаешь механизмы многопоточности

В Java есть несколько механизмов для работы с многопоточностью:

  1. Thread – базовый класс для создания потоков. Можно наследовать или реализовывать Runnable.
java
Thread thread = new Thread(() -> System.out.println("Hello from thread!"));
thread.start();
  1. ExecutorService – пул потоков для управления задачами. Удобен для асинхронного выполнения.
java
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Task executed"));
  1. Future и CompletableFuture – для асинхронных вычислений с возможностью получения результата.
java
CompletableFuture.supplyAsync(() -> "Result")
    .thenAccept(System.out::println);
  1. Synchronized – ключевое слово для синхронизации доступа к общим ресурсам.
java
synchronized (lock) {
    // критическая секция
}
  1. Lock и ReentrantLock – альтернатива synchronized с большей гибкостью (например, tryLock).
java
Lock lock = new ReentrantLock();
lock.lock();
try {
    // критическая секция
} finally {
    lock.unlock();
}
  1. Atomic-классы (AtomicInteger, AtomicReference) – потокобезопасные операции без блокировок.

  2. Concurrent Collections (ConcurrentHashMap, BlockingQueue) – потокобезопасные коллекции.

  3. CountDownLatch, CyclicBarrier, Semaphore – высокоуровневые примитивы синхронизации.

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

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

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

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