System.Threading.Thread.Sleep(0)的意义
毫无疑问,大家都明白 System.Threading.Thread.Sleep 的意思,就是让线程挂起,括号里面的参数是挂起的时间。
这么说起来,那么 System.Threading.Thread.Sleep(0) 不是没有意义了吗?
其实不然! 学过操作系统课程的朋友,应该都比较熟悉 “死锁”的概念。“死锁”产生的四个必要条件: 互斥、请求和保持、循环等待、不剥夺。
这时候, System.Threading.Thread.Sleep(0)的意义就出现了。虽然 System.Threading.Thread.Sleep(0) 从字面意思是挂起0毫秒,好像是没有挂起,但是,挂起的动作确实是执行的。 执行挂起后,立刻又转为非挂起了。就是这个过程中,死锁的条件被破坏了,从而避免了死锁的发生。
本文作者:三角猫 DeltaCat
文章出处:真有意思网(http://www.zu14.cn)
引用地址:点击复制本文的 Trackback Url
文章链接:http://www.zu14.cn/2009/12/26/system-threading-thread-sleep-0/ [复制] (转载请注明出处及链接)
文章出处:真有意思网(http://www.zu14.cn)
引用地址:点击复制本文的 Trackback Url
文章链接:http://www.zu14.cn/2009/12/26/system-threading-thread-sleep-0/ [复制] (转载请注明出处及链接)











学习之用.网络传真
@wefgod :
呵呵,这就是表象。
这个···居然可以避免死锁、?