如果每个线程必须访问相同的阵

时间:2014-02-09 09:35:47

标签: java multithreading performance memory

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

请注意,对于String[][] someArray = new String[100][1000000];(例如),不可能在任何单个时间点同时调用相同的someArray[i]。通常,每个线程在任何给定的时间点都将使用不同的i。但是有时候i在线程中会相同(大多是偶然的)。

每个帖子在someArray上都是只读的。

1 个答案:

答案 0 :(得分:3)

如果您只是阅读这些值,那么它应该不是问题。如果他们正在阅读相同的“我”,那就无所谓了。当你开始写共享内存时会出现问题...

编辑:删除了令人困惑的同步评论。