所以,我很好奇有人可以使用rand_r命令在多个线程中获取随机值。如果我对种子使用时间(NULL),则每个人都会使用sam种子,因为线程创建得非常接近。这些操作都基于该随机种子,因此所有线程对于我的程序的其余部分保持相同。怎么会得到[USAND RAND_R(* int seed)]一个在所有线程中不同的随机数?
提前致谢。
答案 0 :(得分:1)
Ubuntu Linux 14.04上的rand_r的man page建议:
seedp
rand_r()
参数指向的值仅提供非常小的数量 状态,所以这个函数将是一个弱的伪随机生成器。请改为drand48_r(3)
。
答案 1 :(得分:0)
您可以使用arc4random
为每个帖子生成种子值。