关于把synchronized修饰在方法上和放在方法中

来源:13-12 JMM的应用

ice_wolf

2019-10-11

老师请问把synchronized修饰在方法上和放在方法中为什么前者导致的性能问题更严重呢?两种方法不都是会产生竞争的吗?

写回答

1回答

悟空

2019-10-12

两种方法的竞争原理是一样的,但是范围不一样,因为加在方法的时候,往往其实这个方法里,并不是每一行都需要同步的,造成了“扩大范围”的情况。如果只加在方法内部,就可以由我们自由控制同步范围,最小化的同步范围可以提升性能。

0
1
ice_wolf
理解了,谢谢老师
2019-10-12
共1条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程