如果存储在concurrentHashMap中,POJO对象中的可变字段是否安全?

Cod*_*ero 5 java

如果存储在concurrentHashMap中,POJO对象中的可变字段是否安全?

或者我是否需要使用锁定来修改字段或使其变得易变,以确保所有线程都可以看到提升?将该字段标记为volatile是否足以确保所有线程都能看到更新?

Ste*_*n C 13

如果存储在concurrentHashMap中,POJO对象线程安全中是可变字段吗?

不可以.线程安全的唯一事情是对hashmap本身的操作.

或者我是否需要使用锁定对字段进行研磨或使其变得易变,以确保所有线程都能看到提升?

是的,虽然这不一定足够.

将该字段标记为volatile是否足以确保所有线程都能看到更新?

这取决于字段的类型.对于引用类型,它还取决于对象是否可变.


一个忠告:

你不能通过简单的策略来处理线程安全,例如使一切变得易失或同步.您实际上需要了解技术,并了解应用程序的性质; 即并发/多线程将如何发生,以及什么需要线程安全.