栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

锁定可变对象-为什么将其视为不良做法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

锁定可变对象-为什么将其视为不良做法?

这是一个坏主意,因为如果另一个线程更改了关键部分中的引用,则这些线程将不再看到相同的引用,因此它们将不会在同一对象上同步,从而不受控制地运行。例:

 synchronized(lock1) {     lock1 = new Object();     sharedVariable++; }

假设有2个线程试图进入此关键部分。线程1进入,线程2等待。线程1进入,重新分配

lock1
并继续。现在,线程2看到的锁与线程1获得的锁不同,后者也是免费的,因此它也可以进入关键部分。随之而来的是有趣!

如果对象为

final
,则无法将引用重新分配给其他对象,因此上述问题不再适用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569660.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号