Jak wykonuje się pętla w programowaniu współbieżnym

0
 Parallel.For(0, tablicla.Length, (int i) => wyniki[i] = obliczenia(tablica[i]))

Zakładając, że w pętli robimy jakieś obliczenia za pomocą metody obliczenia w której też jest wykonywana pętla od j=0 do j=10. I teraz mam pytanie jak te obie pętlę się wykonują ? Czy wykonywanie pętli z metody obliczenia jest zależne od inkrementacji w metodzie For ? Czyli np jeśli w pętli For zaczynamy od 0 to równocześnie się wykonuje pętla dla indeksu = 0 w pętli For i cała pętla w metodzie obliczenia ? Czy może te obie pętle wykonują się jakoś jednocześnie nie zależnie od wartości indeksu w metodzie For ?

0

Jeśli pętla w metodzie obliczenia jest w zakresie od 0 do 10 to będzie się wykonywać zawsze w zakresie od 0 do 10, tyle razy ile wynosi różnica między pierwszym a drugim parametrem For.
Powyższy kod jest równoważny kodowi

for (int i = 0; i < tablica.Length; i++)
{
  wyniki[i] = obliczenia(tablica[i])
}

z tą różnicą, że ciało pętli dla różnych i mogą się wykonywać jednocześnie i nie po kolei.

1 użytkowników online, w tym zalogowanych: 0, gości: 1