gpt4 book ai didi

java 。序列化高度 volatile 对象集合的安全方法?

转载 作者:行者123 更新时间:2023-12-02 08:32:08 25 4
gpt4 key购买 nike

这是以下问题的后续问题:Java. Serialization of objects in a multithreaded environment .

假设我有一个始终由多个线程操作的对象集合。

public class AlwaysChanging implements Serializable {
// ... state ...

public synchronized void updateFromThread1( int data ) { /* ... */ }
public synchronized void updateFromThread2( int data ) { /* ... */ }

}

序列化 Collection<AlwaysChanging> 的安全方法是什么? ?

最佳答案

首先,为什么不同的线程有不同的更新方法?这看起来很困惑并且不可扩展。

要序列化集合,您需要确保 AlwaysChanging 在序列化过程中没有发生更改。从这个设计来看,唯一的方法似乎是在序列化之前持有所有的锁。或者,您可以对整个集合进行深层复制(复制所有对象)并将其序列化。

在不太了解您的应用程序的其余部分的情况下,我建议您查看 ReadWriteLock作为更细粒度的锁定解决方案。

关于 java 。序列化高度 volatile 对象集合的安全方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079799/

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