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

Как блокировать вызов на сервере

Для блокировки вызова на сервере в Java можно использовать механизмы синхронизации, например, synchronized или ReentrantLock.

Пример с synchronized:

java
public class Server {
    private final Object lock = new Object();

    public void processRequest() {
        synchronized (lock) {
            // Критическая секция
            System.out.println("Обработка запроса...");
        }
    }
}

Пример с ReentrantLock:

java
import java.util.concurrent.locks.ReentrantLock;

public class Server {
    private final ReentrantLock lock = new ReentrantLock();

    public void processRequest() {
        lock.lock();
        try {
            // Критическая секция
            System.out.println("Обработка запроса...");
        } finally {
            lock.unlock();
        }
    }
}

Выбор между ними:

  • synchronized проще, но менее гибок.
  • ReentrantLock позволяет более тонко управлять блокировками (например, таймауты, честность).

Для распределённых систем можно использовать Redisson или ZooKeeper.

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

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

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

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