【发布时间】:2017-04-01 01:10:59
【问题描述】:
#include <random>
int f() {
std::random_device seeder;
std::mt19937 engine(seeder());
std::uniform_int_distribution<int> dist(1, 6);
return dist(engine);
}
多个线程可以安全地调用这个函数吗?函数线程安全吗?
每次都打电话std::random_device seeder; 和std::mt19937 engine(seeder()); 是多余的吗?
【问题讨论】:
-
为什么是“C”标签?这与 C 无关。
-
我真的不明白为什么我会收到反对票。我在问这是否是线程安全的,以及更新种子是否是多余的。
-
可能是因为类似问题的答案冗长而详细?
-
您的代码不足以说明线程安全的含义。初始化?一代?多个实例?
标签: c++ multithreading c++11 mersenne-twister