gpt4 book ai didi

c - 使用pthread在C中生成随机数的最正确方法是什么

转载 作者:太空狗 更新时间:2023-10-29 17:00:46 24 4
gpt4 key购买 nike

我有几个线程同时运行,每个线程都必须生成随机数。我想了解是否有可遵循的模式,了解在主线程中使用 srand 初始化随机生成器是否正确,或者每个线程是否必须初始化自己的随机生成器。似乎 rand/srand 没有被设计为与线程一起使用,我想知道如何一起处理线程和随机数。谢谢

编辑:我需要纯随机数,但我也有兴趣生成用于测试目的的确定性序列。我在 linux 上,但我更喜欢编写尽可能可移植的代码。

最佳答案

在 Linux 上,您可以使用 rand_r()对于平庸的发电机或 drand48_r()一个更好的功能。两者都是 rand()drand48() 的线程安全替代品,采用由当前状态组成的单个参数,而不是使用全局状态。

关于你关于初始化的问题,上面的两个生成器都允许你在任何你想要的点播种,所以你不会被迫在生成你的线程之前播种它们。

关于c - 使用pthread在C中生成随机数的最正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com