Java中如何通过锁机制实例解析银行取款操作问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1203个文字,预计阅读时间需要5分钟。
本文实例讲述了Java使用锁解诀银行取钱问题。分享给大大家参考,具体如下:
+ 一点银 + 1 + 释放同步监视器 + 线程会在以下几种情况下释放对同步监视器的锁定:
1. 当前线程执行完synchronized代码块,自然结束。
2.当前线程执行synchronized代码块中发生异常,结束。
3.当前线程进入synchronized代码块,遇到等待对象的其他线程调用notify()方法,结束。
本文实例讲述了Java使用锁解决银行取钱问题。分享给大家供大家参考,具体如下:
一 点睛
1 释放同步监视器
线程会在如下几种情况下释放对同步监视器的锁定:
- 当前线程的同步方法、同步代码块执行结束,当前线程即释放同步监视器。
- 当线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行,当前线程将会释放同步监视器。
- 当线程在同步代码块、同步方法中出现了未处理的Error或Exception,导致了该代码块、该方法异常结束时将会释放同步监视器。
- 当线程执行同步代码块或同步方法时,程序执行了同步监视器对象的wait()方法,则当前线程暂停,并释放同步监视器。
2 同步锁
Lock是控制多个线程对共享资源进行访问的工具。
通常,锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象。
不过,某些锁可能允许对共享资源并发访问,如 ReadWriteLock(读写锁)。
本文共计1203个文字,预计阅读时间需要5分钟。
本文实例讲述了Java使用锁解诀银行取钱问题。分享给大大家参考,具体如下:
+ 一点银 + 1 + 释放同步监视器 + 线程会在以下几种情况下释放对同步监视器的锁定:
1. 当前线程执行完synchronized代码块,自然结束。
2.当前线程执行synchronized代码块中发生异常,结束。
3.当前线程进入synchronized代码块,遇到等待对象的其他线程调用notify()方法,结束。
本文实例讲述了Java使用锁解决银行取钱问题。分享给大家供大家参考,具体如下:
一 点睛
1 释放同步监视器
线程会在如下几种情况下释放对同步监视器的锁定:
- 当前线程的同步方法、同步代码块执行结束,当前线程即释放同步监视器。
- 当线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行,当前线程将会释放同步监视器。
- 当线程在同步代码块、同步方法中出现了未处理的Error或Exception,导致了该代码块、该方法异常结束时将会释放同步监视器。
- 当线程执行同步代码块或同步方法时,程序执行了同步监视器对象的wait()方法,则当前线程暂停,并释放同步监视器。
2 同步锁
Lock是控制多个线程对共享资源进行访问的工具。
通常,锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象。
不过,某些锁可能允许对共享资源并发访问,如 ReadWriteLock(读写锁)。

