Я хочу сделать что-то подобное в Java
public void giveMoney(String userId, int money) {
synchronized (userId) {
Profile p = fetchProfileFromDB(userId);
p.setMoney(p.getMoney() + userId);
saveProfileToDB(p);
}
}
Но, конечно, синхронизация по строке неверна. Какой правильный способ сделать что-то подобное?