public void giveMoney(String userId,int money) { synchronized (userId) { Profile p = fetchProfileFromDB(userId); p.setMoney(p.getMoney() + userId); saveProfileToDB(p); } }
但是当然,字符串同步是不正确的.什么是正确的方法来做这样的事情?
使用String.intern()(它有一些缺点)或像Guava Interners这样的东西,如果你需要更多的控制实习.
Interners