请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多层synchronized嵌套是否会影响效率?

老师想请教一下,多层synchronized嵌套是否会影响效率?影响效率与嵌套的层数是一个什么关系?是次方还是什么?

正在回答 回答被采纳积分+3

1回答

提问者 树皮 2018-07-30 17:36:37

个人学习理解,synchronized会在同步块生成monitorenter 和 monitorexit 指令,加多层的synchronized,就相当于包了多层 monitorenter  和monitorexit 指令。当线程执行时,会判断该线程是否拥有锁,如果已经拥有将锁的计数器加1,这里加在多层的锁也只是计数器累加而已,效率不会有多大影响。不知道理解对不对

0 回复 有任何疑惑可以回复我~
  • Jimin #1
    jdk高版本里,synchronized关键字做了很多优化,因此本身性能影响已经很小了。这个关键字最关键的问题时,并发量比较高时阻塞很严重,这才是最需要关注的,实际中我们更希望是类似于cas这种无锁操作
    回复 有任何疑惑可以回复我~ 2018-07-30 18:15:00
  • 提问者 树皮 回复 Jimin #2
    理解了,synchronized是属于阻塞同步,影响性能的关键点在于大量线程的阻塞和唤醒操作,谢谢老师
    回复 有任何疑惑可以回复我~ 2018-07-31 10:06:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信