A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Gaara 高级黑马   /  2013-2-2 21:17  /  2200 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-2-5 12:15 编辑

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

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9

查看全部评分

6 个回复

倒序浏览
你提问题要具体些,这样很模糊?看情况
while(true){if(num>0){}  }//这里要有跳出while的代码不然就是死循环了
和while(num>o)  都可以运行
回复 使用道具 举报
while(true)是为了{}里的多线程方法体能够在true的情况下,一直的运行,因为{}里还可能会需要num<0的情况的啊?给出if(num>0)只是为了加强判断,还可能会再有一个判断else if(num<0){};,这样的话,你只写while(num>0)的话,线程的运行区间就不足,很容易死掉!
而且多线程的运行和一般的程序不一样,它是哪个线程抢到了就运行哪个线程,直到它被抢走cpu片段,所以写出while(true)也是为了确保线程的完全运行!

评分

参与人数 1黑马币 +12 收起 理由
Rancho_Gump + 12

查看全部评分

回复 使用道具 举报
王晓明 发表于 2013-2-2 22:39
while(true)是为了{}里的多线程方法体能够在true的情况下,一直的运行,因为{}里还可能会需要num0)只是为 ...

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

哦了  灰常感谢  那我就不纠结了
回复 使用道具 举报
陈迎春 来自手机 中级黑马 2013-2-3 14:31:41
7#
有过同样的疑问,谢谢高手们,学习了!来自: Android客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马