Для синхронизации методов в Java можно использовать ключевое слово synchronized. Это означает, что только один поток может выполнять этот метод в определенный момент времени. Вот пример:
public class MyClass {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized void decrement() {
count--;
}
public synchronized int getCount() {
return count;
}
}
В этом примере все три метода синхронизированы, поэтому только один поток может выполнить любой из них в одно время. Методы могут быть синхронизированы на уровне объекта или класса, и должны быть описаны как public synchronized. Вы также можете использовать блокировки для синхронизации кода с использованием ключевого слова synchronized.
Например, чтобы синхронизировать код, содержащийся внутри блока, можно использовать следующий синтаксис:
public class MyClass {
private int count = 0;
private Object lock = new Object();
public void increment() {
synchronized (lock) {
count++;
}
}
public void decrement() {
synchronized (lock) {
count--;
}
}
public int getCount() {
synchronized (lock) {
return count;
}
}
}
Здесь мы создаем объект lock, который будет использоваться для блокировки. Затем мы используем блокировку для синхронизации каждого метода.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov