gpt4 book ai didi

java - 如果每个线程都必须访问相同的数组,则会影响性能

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

我有一个计算要求很高的任务,我将把它分散到多个线程上。每个线程都需要访问相同的大型 String[][]。我想知道他们都需要在堆上访问相同的 String[][] 这一事实是否会影响性能?为每个线程制作此 String[][] 的副本以单独访问是否更好(即使它们都只需要访问此 String[][]< 的相同实例)?

请注意,对于 String[][] someArray = new String[100][1000000];(例如),它们不太可能在任何一个时间点调用同时使用相同的 someArray[i]。通常每个线程在任何给定的时间点都会使用不同的i。然而,有时 i 在线程之间是相同的(大部分是偶然的)。

每个线程在 someArray 上都是只读的。

最佳答案

如果您只是阅读值,那么这应该不是问题。他们读的是同一个“i”甚至都没有关系。当您开始写入共享内存时,问题就来了……

编辑:删除了令人困惑的同步注释。

关于java - 如果每个线程都必须访问相同的数组,则会影响性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21657454/

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