编写多线程程序,使用了srand和rand函数,在类的构造函数加入了srand,在某个功能函数使用rand,运行发现每次都生成同样的随机数。经过查文档才发现,srand是线程相关的和对象没有关系。对象定义在主线程里,而功能函数在另一个线程里被调用,结果每次都生成相同的随机数。正确做法应该在调用功能函数的同一线程中使用srand。以前还真没注意!
多线程使用随机函数需要注意的一点
最新推荐文章于 2023-09-26 16:28:53 发布
本文探讨了在多线程环境下使用srand和rand函数生成随机数的问题。作者发现每次生成的随机数相同,原因是srand在主线程初始化,而rand在子线程调用。正确做法是在调用rand的线程中初始化srand。
1243

被折叠的 条评论
为什么被折叠?



