C++ Funkcja rand w procesie

0

Witam
W jaki sposób poprawnie użyć funkcji rand w procesie, który jest tworzony i zamykany wielokrotnie w programie?
W momencie gdy użyje funkcji srand na początku WinMain to w procesie jest tworzona liczba z pominięciem srand, zawsze ta sama.
Gdy użyje srand z takim samym ziarnem w procesie za każdym razem, gdy jest on tworzony to liczby powtarzają się. Jedyna możliwość żeby uniknąć powtórzeń to użycie srand w procesie za każdym razem z inną wartością, jednakże wolałbym tego uniknąć, żeby umożliwić powtarzalność wydarzeń po wpisaniu takiego samego ziarna.

Co w takiej sytuacji mogę zrobić poza umieszczeniem funkcji losującej w głównym procesie?

2

srand robisz tylko jeden raz np w WinMain.
Funkcja rand() nie jest wielowątkowa, trzeba otoczyć jej wywołanie np mutexem.

0

Mógłbyś nakierować mnie w jaki sposób to zrobić?
Czytam już od jakiegoś czasu o mutexach i nadal nie mam pojęcia jak to wykonać. Z tego co wyczytałem dowiedziałem się o tym, że służy ona do tego żeby tylko jeden wątek na raz modyfikował daną rzecz. O tym jak za pomocą mutexa używać złożonych funkcji nie znalazłem nic.

1

rand() podczas generacji nowej wartości losowej zmienia wewnętrzną zmienną SEED. Nie mogą rand() wykonywać więcej niże jeden wątek w tym samym czasie.

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