假设我有一个 java 方法(例如数组添加)
public void mymethod() {
{
//i have some global arrays named a, b & c
for(int i=0;i<10;i++)
a[i]=b[i]+c[i]; //no dependency exists
}
在这里,如果我将此循环转换为 2 个单独的循环并使用两个线程运行。结果将是准确的。但在下面给出的情况下
public void mymethod() {
{
//i have some global arrays named a, b
for(int i=0;i<10;i++)
a[i]=b[i]+a[i-1]; //a[i] dependent on a[i-1]
}
a[i] 的下一个值取决于 a[i-1] 的前一个值。因此循环中存在依赖关系,并且不能仅通过将循环分成两个单独的循环来并行化。
所以我的问题;
是否有任何 JAVA 类/工具/包等可以在循环中检查这种类型的依赖关系?