从多个线程使用stdlib的rand()

我有几个线程都运行相同的功能。在每种情况下,它们都会多次生成不同的随机数。我们试图通过将srand(time(0))函数放在开头来执行此操作,但是似乎它们都获得了相同的数字。

我们是否需要srand(time(0))每个程序仅调用一次,即在main(例如)开始,在多次调用的每个函数的开始处调用,还是其他?



GCT1015
浏览 591回答 3
3回答

森林海

如果同时启动所有线程,则每个线程发送到srand的时间可能相同。由于它们都具有相同的种子,因此它们都返回相同的序列。尝试使用其他内容,例如来自局部变量的内存地址。
打开App,查看更多内容
随时随地看视频慕课网APP