java – 同步在值上,而不是对象

前端之家收集整理的这篇文章主要介绍了java – 同步在值上,而不是对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 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 Interners这样的东西,如果你需要更多的控制实习.

原文链接:https://www.f2er.com/java/124625.html

猜你在找的Java相关文章