正如已经指出的那样,它是绝对线程安全的,并且final
由于其内存可见性影响而在这里很重要。
的存在final
保证其他线程将看到在构造函数中,无需任何外部同步完成后,在地图的值。没有final
它,不能在所有情况下都得到保证,并且当使新构造的对象可用于其他线程时,您需要使用安全的发布习惯 ,即(来自Java Concurrency in Practice):
Java并发性:final字段(在构造函数中初始化)是线程安全的吗?
正如已经指出的那样,它是绝对线程安全的,并且final
由于其内存可见性影响而在这里很重要。
的存在final
保证其他线程将看到在构造函数中,无需任何外部同步完成后,在地图的值。没有final
它,不能在所有情况下都得到保证,并且当使新构造的对象可用于其他线程时,您需要使用安全的发布习惯 ,即(来自Java Concurrency in Practice):