gpt4 book ai didi

java - 关于同步的意义

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:07 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我是 Java 多线程编程的新手。我创建了 4 个线程,然后对它们调用了 run 方法。在 run 方法中,我使用了一个数组并将值赋给它是索引。我看到每个线程都在维护它自己的数组副本,并且没有线程不安全的行为。我只是想知道在这种情况下使用同步的意义是什么?(我以为是用来控制对共享资源的访问。这里数组不应该是共享数据结构吗?)

最佳答案

不——如果每个线程都使用自己的数组副本,那么您有四个单独的数组,它们恰好包含相同的数据,但没有发生共享。

如果您有一个数组,并且所有四个线程都在该数组上操作,那么共享就是共享,至少两个线程有​​可能同时使用相同的数据。在这种情况下,您将需要同步以确保它们中只有一个尝试(例如)在任何时候写入任何特定位置(或者如果一个正在读取而另一个正在写入,则写入是原子地完成的,与读取要么完全发生在写入之前,要么完全发生在写入之后——但不允许两者重叠)。

关于java - 关于同步的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098677/

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