线程安全的mersenne twister

Hor*_*cio 5 thread-safety mersenne-twister

寻找一个线程安全的随机生成器我找到了一个mersenne twister生成器类,作者说如果线程安全:

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

但在研究了代码后,我看不出它是安全的线程.在那里没有任何类型的锁或类似锁变量的任何东西.

这个实现真的是线程安全吗?如果是这样,那魔术是什么?

M. *_* B. 6

还有就是如何让在多个流梅森倍捻机多流梅森倍捻机随机数发生器的讨论,同时也实现(即,源代码的Fortran 95)在HTTP://theo.phys.sci.hiroshima-u .ac.jp/~ishikawa/PRNG/mt_stream_en.html.该方法在Mersenne Twister序列中的点处开始多个流,这些点被广泛分离,保证多个流彼此独立并且不会产生相同的随机数序列.锁定并不需要并行代码中的潜在瓶颈; id访问单独的流.


Amn*_*non 1

从可以同时使用两个不同的 MersenneTwist 对象的意义上来说,它似乎是线程安全的。如果不使用锁保护,则无法在两个线程中使用同一对象。

我想作者谈论的原始 C 版本使用了全局或静态变量,所以这是一个改进。