Не понимаю что нужно сделать, как и саму мультипоточность. 1. Если объявить оба метода synchronized, разве они не станут thread safe? 2. Почему обязательно должны быть блоки synchronized? 3. Почему "synchronized(this) для этого не подходит"? 4. 1. Что значит "используй другой объект для лока"? (как переводится "лок" я знаю:) ) 4. 2. Почему нужно использовать другой объект для лока? 5. " 5. Synchronized блоки методов getSumOfVar1AndVar2() и getSumOfVar3AndVar4() должны использовать мьютексы разных объектов." Разве мютекс может быть общий у разных объектов? (этот вопрос возможно не корректен, т.к. я не понимаю, что подразумевается под фразой "должны использовать мьютексы разных объектов") PS Что такое мютекс я представляю (но это не точно). Спасибо.
/**
 Все методы, кроме метода main, класса Solution должны быть thread safe.
 Сделайте так, чтобы оба метода могли выполняться одновременно двумя различными тредами.
 synchronized(this) для этого не подходит, используй другой объект для лока.

 Требования:
 1. Класс Solution должен содержать метод getSumOfVar1AndVar2().
 2. Класс Solution должен содержать метод getSumOfVar3AndVar4().
 3. Метод getSumOfVar1AndVar2() должен содержать synchronized блок.
 4. Метод getSumOfVar3AndVar4() должен содержать synchronized блок.
 5. Synchronized блоки методов getSumOfVar1AndVar2() и getSumOfVar3AndVar4() должны
 использовать мьютексы разных объектов.
 */
public class Solution {
    int var1;
    int var2;
    int var3;
    int var4;

    public Solution(int var1, int var2, int var3, int var4) {
        this.var1 = var1;
        this.var2 = var2;
        this.var3 = var3;
        this.var4 = var4;
    }

    public int getSumOfVar1AndVar2() {
        return var1 + var2;
    }

    public int getSumOfVar3AndVar4() {
        return var3 + var4;
    }

    public static void main(String[] args) {

    }
}