所以,我很好奇如何有人可以使用 rand_r 命令跨多个线程获取随机值。如果我对种子使用时间(NULL),那么每个人都会得到相同的种子,因为线程创建得非常接近。这些操作都基于该随机种子,因此所有线程对于我的程序的其余部分保持相同。如何获得 [ USING RAND_R(*int seeds) ] 一个在所有线程中都不同的随机数?
提前致谢。
最佳答案
man page对于 Ubuntu Linux 14.04 上的 rand_r 建议:
The value pointed to by the
seedp
argument ofrand_r()
provides only a very small amount of state, so this function will be a weak pseudo-random generator. Trydrand48_r(3)
instead.
关于C89:使用 rand_r() 的多线程随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722447/