java中数组的并发更新

cha*_*cko 3 java concurrency

在java中,我有一大堆字符串.

我有一个线程做这样的事情:

for (int i=0;i<10000;i++) array[i] = getSomeValue();
Run Code Online (Sandbox Code Playgroud)

我有另一个线程做这样的事情:

for (int i=10000;i<20000;i++) array[i] = getSomeValue();
Run Code Online (Sandbox Code Playgroud)

和另一个线程:

for (int i=20000;i<30000;i++) array[i] = getSomeValue();
Run Code Online (Sandbox Code Playgroud)

等等.

我必须做一些特别的事情来做这个操作吗?

它会起作用吗?

我试图通过将任务分成多个线程来更快地填充这个大型数组,但我想知道这是否正确.

我正在使用64位机器16 cpu和所有花哨的东西.

SLa*_*aks 8

您的代码将正常工作.

阵列的不同部分彼此独立.

规范说:

Java虚拟机的一个实现考虑因素是每个字段和数组元素都被认为是不同的