Java并发性:final字段(在构造函数中初始化)是线程安全的吗?

Java并发性:final字段(在构造函数中初始化)是线程安全的吗?,第1张

Java并发性:final字段(在构造函数中初始化)是线程安全的吗?

正如已经指出的那样,它是绝对线程安全的,并且

final
由于其内存可见性影响而在这里很重要。

的存在

final
保证其他线程将看到在构造函数中,无需任何外部同步完成后,在地图的值。没有
final
它,不能在所有情况下都得到保证,并且当使新构造的对象可用于其他线程时,您需要使用
安全的发布习惯 ,即(来自Java Concurrency in Practice):

  • 从静态初始化程序初始化对象引用;
  • 将对它的引用存储到volatile字段或AtomicReference中;
  • 将对它的引用存储到适当构造的对象的最终字段中;要么
  • 将对它的引用存储到由锁适当保护的字段中。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4979738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存