gpt4 book ai didi

Java同步困境

转载 作者:行者123 更新时间:2023-11-29 04:51:04 25 4
gpt4 key购买 nike

假设我有 4 个对象,A、B、C 和 D。

  • A 上的所有方法都是同步的。
  • B、C 和 D 上没有任何方法是同步的。
  • B只能被A访问
  • C同时被A和B访问
  • D只有B可以访问

可以同时从不同的线程调用 A 上的方法。给定的场景是线程安全的吗?即对B、C、D的所有读写是否对所有线程可见?

提前致谢!

最佳答案

因此所有访问都从 A 的同步方法开始,并且 A、B、C 和 D 的所有读取和写入都是在锁定 A 的同时完成的。那么是的,这将使这种安排成为线程安全的(就内存访问而言很关心,不能谈业务逻辑)。

注意:您说的是“对象”,而不是“类”,所以我认为这就是您的意思。例如,如果您有多个 B 实例,并且这些实例在 A 的多个实例之间共享,那么这可能不再是线程安全的。您的线程访问的对象树必须与它们持有的锁相匹配。

关于Java同步困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35388506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com