|
发表于 2009-12-6 15:14:00
|
显示全部楼层
Re: 基于Ogre3D的游戏框架——Orz
看了一下网络部分的代码
其中关于
//! 数字选择器
/*!
* \note 线程安全
* \note 使用递增循环或者随机的方式选择指定范围内的一个数字
example:
\code
NumChooser nc(0,9, 234)); // 创建一个从0~9种选择数字的数字选择器,随机种子数设为234
Number num1 = nc.choose(); // 线程1
Number num2 = nc.choose(); // 线程2
// num1 和 num2 不会相同
\endcode
*/
Number choose()
{
Number curr;
if (m_random)
curr = m_rdr->generate(m_min, m_max);
else
{
curr = m_curr;
++curr;
if (curr > m_max)
curr = m_min;
m_curr = curr;
}
return curr;
}
虽然没有实际测试,但光是看代码这个是无法做到线程安全的。
// num1 和 num2 不会相同
是错误的 是有可能相同的 |
|