gpt4 book ai didi

c - 正确播种 rand_r(int *val) 方法

转载 作者:太空狗 更新时间:2023-10-29 14:53:26 29 4
gpt4 key购买 nike

所以我有多个线程将使用 rand_r 函数。这个函数的签名是:

int rand_r(int *val);

我试图利用这段时间为这个函数做种子,但我遇到了各种各样的麻烦。任何人都可以向我解释我将如何使用时间调用 rand_r,或者其他一些简单的方法来动态播种 rand_r。

谢谢!

最佳答案

对于可重入版本rand_r,种子只是状态的初始值。每个线程需要一个种子。创建种子数组,或使种子变量成为线程局部变量:

_Thread_local unsigned int seed = time(NULL);

int do_stuff()
{
for ( ; ; )
{
int n = rand_r(&seed);
// use n
}
}

关于c - 正确播种 rand_r(int *val) 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869496/

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