Java线程同步之同步锁

By | 2017年2月27日

同步锁Lock是一种更强大的线程同步机制,通过显式定义同步锁对象来实现线程同步。同步锁提供了比同步代码块,同步方法更广泛的锁定操作,实现更灵活

Lock是控制多个线程对共享资源进行访问的工具,能够对共享资源进行独占访问,每次只能有一个线程对Lock对象加锁,线程访问共享资源之前需要先获得Lock对象,某些锁可能允许对共享资源并发访问。

【示例】使用ReentrantLock锁

  • 加锁和释放锁需要放在线程安全的方法中;
  • lock.unlock()放在finally语句中,不管发生异常与否,都需要释放锁

下面在银行账户类中增加一个同步锁

BankAccount.java

结果:

发表评论

电子邮件地址不会被公开。 必填项已用*标注