JavaSE:线程同步机制
2021/6/17 12:29:57
本文主要是介绍JavaSE:线程同步机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
线程同步机制(重点)
1. 基本概念
<1> 当多个线程同时访问同一种共享资源时,可能会造成数据的覆盖等不一致性问题,
此时就需要对线程之间进行通信和协调,该机制就叫做线程的同步机制。
<2> 多个线程并发读写同一个临界资源时,会发生线程并发安全问题
<3> 异步操作:多线程并发的操作,各自独立运行
<4> 同步操作:多线程串行的操作,先后执行的顺序
2. 案例 (银行的存款取款)
<1> 当两个线程同时对同一个账户进行取款时,可能会导致最终的账户余额不合理
<2> 引发原因:线程一执行取款时,还没来得及将取款后的余额写入后台,线程二就已经开始取款
<3> 解决方案:线程一完成取款操作后,再让线程二执行即可,将线程的并发操作改为串行操作
<4> 经验: 在开发中,尽量减少串行操作的范围,从而提高效率
3. 实现方式
使用synchronized关键字,实现同步 / 对象锁机制,从而保证线程执行的原子性,具体方式如下:
<1>使用同步代码块的方式,实现部分代码的锁定,格式如下:
synchronized (类类型的引用){
编写所有需要锁定的代码;
}
<2>使用同步方法的方式,实现所有代码的锁定
直接使用synchronized关键字来修饰整个方法即可
该方法等价于:
synchronized(this) {整个方法体的代码}
这篇关于JavaSE:线程同步机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)