线程安全类可以包含任何公共实例字段吗?
答案 0 :(得分:1)
访问修改在线程安全的上下文中无关紧要。当然,您可以在线程安全类中拥有公共字段,您需要问自己的问题是:这是否符合我/设计模式以及我可以通过这样做实现的目标。
答案 1 :(得分:1)
当人们说C类是“线程安全的”时,它们通常意味着多个线程在单个类实例上执行的操作的交错不会使实例处于无效状态。 (但正如Marko所说,这不是一个正式商定的定义。)那么,你班级实例的状态是什么?哪些州有效且哪些无效?是否可以通过更新其中一个公共字段将有效状态更改为无效状态?
如果有任何方式更新公共字段可以将状态从有效更改为无效,那么您不能说该类通常线程安全,但如果这种情况从未发生过在您的应用程序中,那么在您的应用程序的有限上下文中,该类可能是线程安全的。