【发布时间】:2014-11-03 20:18:52
【问题描述】:
所以,我很好奇有人如何使用 rand_r 命令跨多个线程获取随机值。如果我使用 time(NULL) 作为种子,每个人最终都会得到 sam 种子,因为线程创建得非常接近。这些操作都基于该随机种子,因此对于我的程序的其余部分,所有线程都保持相同。如何获得 [ USING RAND_R(*int seed) ] 一个在所有线程中都不同的随机数?
提前致谢。
【问题讨论】:
-
您可以拨打
time(NULL)获取第一种子和第二种子。然后您可以使用第二个种子生成第三个种子。以此类推。 -
只使用种子 = time(NULL) + thread_id 怎么样?或对它们进行异或。
标签: c multithreading random pthreads c89