编写多线程程序,使用了srand和rand函数,在类的构造函数加入了srand,在某个功能函数使用rand,运行发现每次都生成同样的随机数。经过查文档才发现,srand是线程相关的和对象没有关系。对象定义在主线程里,而功能函数在另一个线程里被调用,结果每次都生成相同的随机数。正确做法应该在调用功能函数的同一线程中使用srand。以前还真没注意!
多线程使用随机函数需要注意的一点
最新推荐文章于 2020-11-11 14:58:55 发布
编写多线程程序,使用了srand和rand函数,在类的构造函数加入了srand,在某个功能函数使用rand,运行发现每次都生成同样的随机数。经过查文档才发现,srand是线程相关的和对象没有关系。对象定义在主线程里,而功能函数在另一个线程里被调用,结果每次都生成相同的随机数。正确做法应该在调用功能函数的同一线程中使用srand。以前还真没注意!