rand()有多个线程

Vbp*_*Vbp 3 c multithreading

我正在研究两个线程,试图在main()中生成种子(time(null))种子的随机数.程序连续出现分段故障,直到我发现在使用线程时我们必须为自己的例程中的所有线程生成随机数,然后就没有seg错误了.

我试图在谷歌上找到答案,为什么我们必须为所有线程独立播种,但没有找到足够令人信服的答案.有人可以解释一下吗?谢谢!!

Dar*_*usz 5

给你一个简短直接的答案:

rand() 不是线程安全的.

如果没有明确的临界区,则不应从多个线程调用它.