假设我有4个对象,A,B,C和D.
A上的方法可以同时从不同的线程调用。给定的场景是线程安全的吗?也就是说,对所有线程都可以看到对B,C和D的读写操作吗?
提前致谢!
答案 0 :(得分:3)
因此所有访问都从A的同步方法开始,A,B,C和D的所有读写都在锁定A时完成。然后是的,这将使这种安排成为线程安全的(就内存访问而言)关注,不能谈论业务逻辑。)
注意:你说“对象”,而不是“类”,所以我认为这就是你的意思。例如,如果您有多个B实例,并且这些实例在A的多个实例之间共享,那么这可能不再是线程安全的。线程访问的对象树必须与它们持有的锁相匹配。