恭喜,你发布的帖子
发布于 2016-10-26 14:00:18
31楼
我知道一点多任务的知识,说说就比较明白了。比如说Windows2000吧,它一线程为单位执行程序,每隔20ms切换一次。一个线程如果到了20ms如果没有特殊情况比如中断那么将被挂起,实际上2000里面有大量的待执行线程,他们会被标示为不同的优先级,优先级高的将优先执行。现在来讲调用程序的问题,如果一个子程序调用没有执行完毕线程被挂起是存在的,而且又不允许其他程序执行,那么就要设置标志。在子程序内部设置标志有很多不合理因素,一个是系统开销的问题,很大的。另一个是存在极端的情况,如果一个程序调用了子程序的时候马上被系统挂起,那么它有可能来不及对标志进行置位,这时候就会有另外一个程序进入子程序,结果出错。虽然说概率很小,但是在一个程序反复不停运行的时候出错概率很高了。
请填写推广理由:
分享
只看
楼主