Ich arbeite an einer Webanwendung, wo ich für jede Anfrage eine Zufallszahl generieren muss. Die Anfrage trifft einen bestimmten Bucket aus einer Gruppe von Buckets. Die für einen bestimmten Bucket generierten Zufallszahlen sollten eine gleichmäßige Verteilung aufweisen. Ich plane eine Karte zu verwenden, die wie eine SplittableRandom Instanzen gegen Eimer ids hat diesesIst SplitTableRandom.split() threadsafe?
buketId -> SplittableRandom
Um eine Web-Anfrage unterhält ich die bucketId zunächst prüfen, in der Anforderung angegeben. Dann wähle ich die entsprechende SplittableRandom-Instanz und rufe split() darauf auf. Unter Schwerlast wird die split() -Methode für dieselbe Instanz von mehreren Threads aufgerufen. Ist dieser Ansatz sicher?
Nein. Erstellen Sie entweder neue Instanzen lokal oder verwenden Sie ein normales 'Random'. – shmosel