在POJO类中使用Lock实例的最佳方法

时间:2018-07-26 14:01:32

标签: java multithreading

我正在研究样本银行应用程序。为了使银行业务(存款,提款,转账等)线程安全,我想使用Lock接口。我需要锁定该帐户上发生的银行操作的Account实例。 例如,在deposit(Account account,Double amountToDeposit)中,我想锁定该帐户实例,以便可以在不同的帐户上同时进行多个存款操作。

我可以在Account pojo中拥有一个Lock实例吗,根据设计指南,这是一种好的编码习惯吗? 实现此功能的最佳方法是什么?

public class Account{
   private final Long accountNumber;
   private Double balance;
   private final Lock lock;

  // constructor, getters and setter 
} 

以下是银行交易的示例代码-

public class Transaction{
   public void deposit(Account accunt, Double amount){
     account.getLock().lock();
     //validation and transaction logic
     account.getLock().unLock();
  }
}

0 个答案:

没有答案