正在回答
2回答
synchronized( ){ }
小括号里写的是同步监视器,任何一个对象都可以,所以当前对象this可以用来充当锁(同步监视器)
大括号里的才是需要同步的代码块
好帮手慕小尤
2020-05-13 19:18:52
同学你好,synchronized会对对象加锁,同一时刻只有一个线程能访问该对象。
如:直接在方法上加synchronized锁的就是当前的实例对象,当传入的是同一个实例对象时,两个进入这个方法后,两个线程不会同时进行,而如果传入的是不同的对象,则两个线程还是并行的跑的,就像在一个银行大厅中,两个人还是各自干各自的事情,但说话声会在同一个大厅中。假如有个录音设备,那么:
A:你好 ,我来取钱 。另一办业务的客户B:可能就在A说出 “你好” 的时候,说“你好,我来存款。” 如果B说话很快的话,录音出来了就会是“你好”“你好,我来存款”“我来取钱”。他们两个是同时进行的,但在业务上是互不干扰的。只是因为使用同一个控制台,所以交替输出了。但假如客户始终是一个人,则它就会说,“你好,我是来取钱的”,“你好,我是来存钱的”。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星