黑马程序员技术交流社区

标题: 多线程问题? [打印本页]

作者: Gaara    时间: 2013-2-2 21:17
标题: 多线程问题?
本帖最后由 张向辉 于 2013-2-5 12:15 编辑

为什么一般Java多线程代码中 都有while(true){if(num>0){}  }
为什么不直接while(num>o)  

作者: 铿锵科技    时间: 2013-2-2 22:36
你提问题要具体些,这样很模糊?看情况
while(true){if(num>0){}  }//这里要有跳出while的代码不然就是死循环了
和while(num>o)  都可以运行
作者: 王晓明    时间: 2013-2-2 22:39
while(true)是为了{}里的多线程方法体能够在true的情况下,一直的运行,因为{}里还可能会需要num<0的情况的啊?给出if(num>0)只是为了加强判断,还可能会再有一个判断else if(num<0){};,这样的话,你只写while(num>0)的话,线程的运行区间就不足,很容易死掉!
而且多线程的运行和一般的程序不一样,它是哪个线程抢到了就运行哪个线程,直到它被抢走cpu片段,所以写出while(true)也是为了确保线程的完全运行!
作者: Gaara    时间: 2013-2-2 23:15
王晓明 发表于 2013-2-2 22:39
while(true)是为了{}里的多线程方法体能够在true的情况下,一直的运行,因为{}里还可能会需要num0)只是为 ...

3Q 我再研究下  
作者: 王少雷    时间: 2013-2-2 23:18
while(true)像这样的死循环,怎么写都行,不必要纠结,只是API规、范,他们高手都这么写,看习惯了,觉得这样写非常像高手 ,所以大家都这么写。
关于 它的作用,就是测试 用,防止 虚假唤醒 。真正的项目应该很少这么用,会影响效率的。
作者: Gaara    时间: 2013-2-3 00:54
王少雷 发表于 2013-2-2 23:18
while(true)像这样的死循环,怎么写都行,不必要纠结,只是API规、范,他们高手都这么写,看习惯了,觉得这 ...

哦了  灰常感谢  那我就不纠结了
作者: 陈迎春    时间: 2013-2-3 14:31
有过同样的疑问,谢谢高手们,学习了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2