generowanie liczb losowych i przypisanie jej w obliczeniach równoległych

0

Cześć,
na początku zaznaczę, że dopiero wchodzę w temat programowania równoległego, ale intryguje mnie pewna rzecz.

załóżmy, że mam funkcję zadeklarowaną globalnie, której celem jest zwrócenie liczby losowej.
Następnie mam np. 100 obiektów, które potrzebują otrzymać jakąś losową liczbę - więc wszystkie wywołują tą funkcję globalną. Obliczenia są wykonywane na jakimś procesorze graficznym równolegle - tzn. wszystkie 100 obiektów w tej samej chwili próbuje otrzymać liczbę losową.

Moje pytanie brzmi, czy nie ma tutaj jakiegoś zagrożenia, że część obiektów otrzyma taką samą liczbę (tzn. nie mówię tutaj o
prawdopodobieństwie wylosowania tej liczby). Czy jest to w ogóle możliwe?

Drugie pytanie jest podobne. Każdy z tych obiektów musi zrobić coś z tą liczbą losową, a następnie dodać ją do pewnej wspólnej dla wszystkich obiektów zmiennej. Reasumując 100 obiektów próbuje w tej samej chwili dodać do obiektu pewną wartość.
Czyli np. 100 razy wykona się taka operacja:

double wynik += obiekt[i].return_result();

Czy nie ma tu jakiegoś zagrożenia, że część obiektów nie doda swojego wyniku do tej zmiennej?

Jak się zabezpieczyć przed w/w problemami?
z góry dziękuję za pomoc!

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