c++ - rand() 不遵守 Qt Creator 中的 srand()

标签 c++ multithreading qt

我在 Qt Creator 1.0.0(Qt 版本 4.5.0)中编写了一个程序,在 main() 函数的开头放置了

srand(time(0));

然后我从另一个线程(QThread 的子类)调用 rand()。在该函数中,每次我运行程序时,rand() 都会生成相同的数字序列。我不会在一秒钟内多次运行该程序。

为什么会这样?

最佳答案

您需要在每个线程中调用 srand,因为种子存储在线程特定的 block 中。

关于c++ - rand() 不遵守 Qt Creator 中的 srand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1316439/

相关文章:

c++ - 从ubuntu上的utc时间计算unix时间

c++ - 使用未声明的标识符 'gl_LightSource'

java - 当我的所有线程在 android 中完成时,我如何执行函数?

c++ - 在 Qt 中实现回调

c++ - 如何重新定义内置键盘快捷键的行为?

c++ - 如何使指针指向 NULL

c++ - 如何获取当前目录下的所有文件名?

c# - Redis StringGet 批量/事务?

android - 在 Android 中的 UI 线程操作期间显示 ProgressDialog

c++ - 如何从远程计算机获取当前登录的用户名