Question

Vous cherchez un fil générateur aléatoire sûr je l'ai trouvé une classe de générateur de twister Mersenne que l'auteur dit que si la sécurité de fil:

http://www.umiacs.umd.edu/~yangcj/mtrnd. html

Mais après avoir étudié le code que je ne vois pas été, il est thread-safe. Il n'y a pas de serrures de toute nature ou quoi que ce soit ressemblant à une variable de verrouillage là-dedans.

Est-ce vraiment sûr la mise en œuvre enfilez? Si oui, quelle est la magie?

Était-ce utile?

La solution

Il semble être thread-safe dans le sens où deux objets MersenneTwist différents peuvent être utilisés simultanément. Vous ne pouvez pas utiliser le même objet dans deux threads sans protection avec une serrure.

Je suppose que la version originale C les auteur parle utilisés des variables globales ou statiques il est donc une amélioration.

Autres conseils

Il y a une discussion sur la façon de faire un certain nombre à flux multiples Mersenne Twister générateur aléatoire à flux multiples Mersenne Twister, et aussi une mise en œuvre (par exemple, le code source en Fortran 95) http://theo.phys.sci.hiroshima-u.ac.jp/~ishikawa/PRNG /mt_stream_en.html . Le procédé commence au niveau de points multiples flux dans la séquence Mersenne Twister qui sont largement séparés, ce qui garantit que les flux multiples sont indépendantes les unes des autres et ne produira pas la même séquence de nombres aléatoires. Il n'y a pas besoin pour les serrures et bouteille ainsi potentiels cous en code parallèle; les courants séparés sont accessibles par identifiant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top