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

В чем разница между методом lock() и async()

lock() и async() относятся к разным контекстам в Java.

lock() – это метод из java.util.concurrent.locks.Lock, который блокирует поток до получения блокировки. Если блокировка занята, поток будет ждать.

async() – обычно относится к асинхронному выполнению (например, в Spring @Async), где метод выполняется в отдельном потоке, не блокируя вызывающий поток.

Пример с lock():

java
Lock lock = new ReentrantLock();
lock.lock(); // блокируем
try {
    // критическая секция
} finally {
    lock.unlock();
}

Пример с @Async (Spring):

java
@Async
public void asyncMethod() {
    // выполняется в другом потоке
}

Итог:

  • lock() – синхронизация, блокирует поток.
  • async() – асинхронность, не блокирует вызывающий поток.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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