gpt4 book ai didi

java - 如何同步具有约 100 个原始字段的 Java 对象

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:41 24 4
gpt4 key购买 nike

在编码面试中我被问到了这样的问题:

假设您有一台运行多个 Java 服务的 Linux 机器 - 在这些服务之间实时同步 Java 对象与约 100 个原始字段的好方法是什么?提供至少两种解决方案并比较每种解决方案的优缺点。

并发性不是我的强项,因此非常感谢详尽的解释。提前致谢!

最佳答案

一种方法是在字段级别进行同步,但这意味着您将拥有与基元相对应的对象(例如,使用 Integer 而不是 int)。因此,您的实现将类似于:

public class SomeSynchronizedClass {

private Integer field1;
private Double field2;
....

public void doSomethingWithField1() {
synchronized(field1) {
// do something to field1 here
}
}

public void doSomethingWithField2() {
synchronized(field2) {
// do something to field2 here
}
}
}

请注意,该方法不是同步的,因为这将持有对象本身(SomeSynchronizedClass 的实例)的锁,而是在每个私有(private)对象(字段)上完成同步,以便线程仅在尝试对同一字段进行操作时才会阻塞。

关于java - 如何同步具有约 100 个原始字段的 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44170198/

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