java – 同步在值上,而不是对象
发布时间:2020-12-14 16:39:18 所属栏目:Java 来源:网络整理
导读:我想在 Java中做这样的事情 public void giveMoney(String userId,int money) { synchronized (userId) { Profile p = fetchProfileFromDB(userId); p.setMoney(p.getMoney() + userId); saveProfileToDB(p); } } 但是当然,字符串同步是不正确的.什么是正确
我想在
Java中做这样的事情
public void giveMoney(String userId,int money) { synchronized (userId) { Profile p = fetchProfileFromDB(userId); p.setMoney(p.getMoney() + userId); saveProfileToDB(p); } } 但是当然,字符串同步是不正确的.什么是正确的方法来做这样的事情? 解决方法
如果用户ID集合受限,您可以在内部版本的String上进行同步.
使用String.intern()(它有一些缺点)或像Guava (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |