rand()不服从Qt Creator中的srand()

Don*_*alo 4 c++ qt multithreading

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

srand(time(0));
Run Code Online (Sandbox Code Playgroud)

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

为什么会这样?

Zed*_*Zed 17

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