考虑以下方法:
我希望保护这个方法,防止出现竞态条件,但只有在两个具有相同customerId的线程同时调用它时才会发生。如果我使整个方法同步,这将降低效率并且实际上并不需要。我真正想要的是围绕customerId进行同步。在Java中是否可能实现这一点?是否有任何内置工具可以实现这一点,或者我需要使用Map作为锁的Integer?
另外,如果您认为我在做错什么,请随时提供建议:)
谢谢!
public void upsert(int customerId, int somethingElse) {
// some code which is prone to race conditions
}
我希望保护这个方法,防止出现竞态条件,但只有在两个具有相同customerId的线程同时调用它时才会发生。如果我使整个方法同步,这将降低效率并且实际上并不需要。我真正想要的是围绕customerId进行同步。在Java中是否可能实现这一点?是否有任何内置工具可以实现这一点,或者我需要使用Map作为锁的Integer?
另外,如果您认为我在做错什么,请随时提供建议:)
谢谢!