000
02.12.2008, 13:53 Uhr
Tommix
|
Hallo,
Das Thema hat zwar nicht direkt was mit dem Standard zu tun, mit dem Betriebssystem aber eigentlich auch nicht, drum frage ich mal hier: Ich möchte in parallelen Threads unterschiedliche Serien von Zufallszahlen generieren. Wenn ich srand((unsigned)time(0)) in der Hauptfunktion, die die Threads startet aufrufe bringt das nichts. Es wird in allen Threads die gleiche Folge von Zufallszahlen generiert und auch bei jedem Aufruf die selbe. Rufe ich srand in der Threadfunktion, funktioniert das logischerweise ebenfalls nicht, da die Threads praktisch zeitgleich starten. Ich habe mir jetzt so geholfen, daß ich in der Hauptfunktion für jeden Thread einen Wert
C++: |
unsigned seed = rand();
|
bestimme, diesen dann der Threadfunktion als Parameter übergebe und in der Threadfunktion
an den Anfang setze. Das funktioniert zwar, erscheint mir aber ziehmlich umständlich. Kennt da jemand eine elegantere Lösung? Boost scheint in der Richtung einiges auf Lager zu haben.
Gruß, Tommix Dieser Post wurde am 02.12.2008 um 13:53 Uhr von Tommix editiert. |