Search code examples
thread-safetymersenne-twister

Thread safe mersenne twister


Looking for a thread safe random generator I found a mersenne twister generator class that the author says if thread safe:

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

But after studying the code I cannot see were it is safe thread. There are no locks of any kind or anything resembling a lock variable in there.

Is this implementation really thread safe? If so what is the magic?


Solution

  • It appears to be thread-safe in the sense that two different MersenneTwist objects can be used concurrently. You can't use the same object in two threads without protecting it with a lock.

    I guess the original C version the author talks about used global or static variables so it's an improvement.