3.2.2_多线程【下】概要
Java 基础篇
线程的同步
当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步
如:银行取钱问题,有以下步骤:
1) 用户输入账户、密码,系统判断是否登录成功
2) 用户输入取款金额
3) 系统判断取款金额是否大于现有金额
4) 如果金额大于取款金额,就成功,否则提示小于余额
5) 将这个流程放在多线程并发场景下,就可能出现问题。
同步
同步代码块
线程开始执行同步代码块之前,必须先获得对同步监视器(object)的锁定,当同步代码块执行结束后,该线程自然释放了对该同步监视器的锁定。
同步方法
Java多线程支持方法同步,方法同步只需用用synchronized来修饰方法即可,那么这个方法就是同步方法了。对于同步方法而言,无需显示指定同步监视器,同步方法监视器就是本身this。
synchronized (object) {
//同步代码
}
需要用同步方法可以非常方便地将某类变成线程安全的类,该类具有以下特征:
1) 该类的对象可以被多个线程访问
2) 每个线程调用对象的任意方法之后都将得到正常结果
3) 每个线程调用对象的任意方法后,该对象状态保持合理状态
可变类的线程安全是以降低程序的运行效率为代价,为了减少线程安全所带来的负面影响,可以采用以下策略:
1) 不要对线程安全类的所有方法都采用同步模式,只对那些会改变竞争资源(共享资源)的方法进行
您可能关注的文档
最近下载
- 小学六年级英语测试题(006号).doc VIP
- 玉柴YC4D120-20-D1008发动机零件图册.pdf VIP
- 透析正则动量与配速法的应用讲义+跟踪训练.pdf VIP
- 小学五年级英语测试题(010号).doc VIP
- [英语]《开心学英语》小学五上学期英语试题.doc VIP
- 小学英语素材-英语音标发音规则大法.doc VIP
- 2026年高考物理二轮复习微专题六 配速法与洛伦兹力冲量法(复习讲义)(全国通用)(原卷版).docx VIP
- 2025年教育行业五年在线教育发展与用户习惯报告.docx
- 2026吉林新高考:地理必考知识点归纳.doc VIP
- 2023年上海市中考英语试卷真题(含答案)+听力材料.pdf
原创力文档

文档评论(0)