今天用C++实现一个调度算法,需要生成随机数,于是我立刻想到了经典的C的实现方法:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand((int)time(0));
int r = (rand() % 100) + 1;
cout << r << endl;
return 0;
}
但是在实际的工程中,可能涉及到多线程等技术,使用上述方法可能会面临线程安全问题。
参考资料
- Stack Overflow: Random number generation in C++11: how to generate, how does it work?
- Boost Document: Chapter 33. Boost.Random