1:创建一个ReentrantReadWriteLock对象 private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
2:抽取读锁和写锁 private Lock readLock = rwl.readLock();//得到一个可被多个读操作共用的读锁,但它会排斥所有写操作 private Lock writeLock = rwl.writeLock();//得到一个写锁,它会排斥所有其他的读操作和写操作
3:对所有访问者加读锁 public double getTotalBalance(){ readLock.lock(); try{...}; finally{readLock.unlock();} }
4:对所有修改者加写锁 public void transfer(){ writeLock.lock(); try{...}; finally{writeLock.unlock();} }