gpt4 book ai didi

java - 从 AtomicLongArray 获取数组

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:53:00 26 4
gpt4 key购买 nike

使用 Java 1.6 和 AtomicLongArray,我想将原始的 AtomicLongArray“复制”到一个新的中。有一个采用数组 (AtomicLongArray(long[])) 的构造函数,所以我想我可以从原始数组中获取数组并将其提供给构造函数。

遗憾的是,AtomicLongArray 中的实际 long[] 是私有(private)的,似乎没有它的 getter。有没有办法做到这一点,意思是将值从一个 AtomicLongArray 复制到另一个?我无法基于此类创建自己的类,因为我无法使用 sun.misc.Unsafe 类。

这是必需的,因为我要迭代这些值,并且我不希望它们在迭代期间被另一个线程修改。所以我想我可以制作一个副本并将其用于迭代...

谢谢!菲利普

最佳答案

我怀疑您必须先创建自己的 long[] 并填充它,或者只是迭代原始的:

AtomicLongArray copy = new AtomicLongArray(original.length());
for (int i = 0; i < copy.length(); i++)
{
copy.set(i, original.get(i));
}

请注意,尽管 AtomicLongArray 中的每个单独操作都是原子操作,但没有批量操作 - 因此无法及时获取整个数组的“快照” T. 如果您想要那种行为,我相信您需要使用同步。

关于java - 从 AtomicLongArray 获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408112/

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