- 日志
- 好友
- 卖家信用
- 买家信用
- 注册时间
- 2009-4-27
- 在线时间
- 小时
|
楼主 |
发表于 2011-11-30 21:04:20
|
显示全部楼层
本帖最后由 bakerwhy 于 2011-11-30 21:10 编辑
我再补充描述一下问题吧
首先这不是一个线程调度的问题,也不存在同步的问题
举个例子,以下代码,
for(int i=0; i<1000;i++)
{
//other func with non-output
printf("i=%d,", i);
}
for(int k=0; k<1000;k++)
{
//other func with non-output
printf("k=%d,", k);
}
如果放到main函数中,结果肯定是:
i=0,i=1,i=2,...........i=999,k=0,k=1,.....k=999,
但如果放到一个线程中(同一个线程),我们期待的结果应该也是和上面一样的,
但实际结果是不稳定的,什么情况都有(当然大部分时间还是正常的),比如会出现以下极端的情况
i=0,i=1,k=1,i=3,k=0..............完全不是按顺序来的,有些在后面的反倒先执行了。。。 |
|