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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘瑞 中级黑马   /  2014-8-20 18:02  /  6354 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
如题,多线程中使用while和if有什么区别?
毕老师经常用while(true) 仅仅是让执行语句循环运行吗?
而且用while(true),好像不能自动停止循环的。

最佳答案

查看完整内容

while(true) 一般有标记的。 boolean flag = true while(flag) 然后在提供一个方法。控制 flag

11 个回复

正序浏览
思如涌泉 发表于 2014-8-28 07:56
简单一句就是 if只判断一次,且线程停着挂在if的下一步
而 while是无限判断线程是否有执行权 ...

这个是正解,while会一直判断,if判断后,若cpu没有给其执行权,后面再给,会继续向下执行; 而while会再次判断
回复 使用道具 举报
Mr.JUN 中级黑马 2014-11-4 14:00:27
9#
死循环?
回复 使用道具 举报
while死循环
回复 使用道具 举报
一个线程可以理解为是在run函数结束后被销毁。但是有些时候一个线程是用来做监视/维护程序状态之类的事情的。所以要用无限的循环让它不会停下来。
回复 使用道具 举报
简单一句就是 if只判断一次,且线程停着挂在if的下一步
而 while是无限判断线程是否有执行权
回复 使用道具 举报
while死循环
回复 使用道具 举报
就是成心让它一直循环,这样即使线程在被唤醒后也会先在此进行判断,才去执行对应的操作(注意对应的操作在while外面,这个while就死专门用来判断线程是否执行后续操作的资格的)

点评

知道了,原来是这样啊  发表于 2014-8-25 21:51
回复 使用道具 举报
多线程一般都会把while写成死循环,因为要线程跑起来,但是跑多久你是不知道的,在里面用if判断条件跳出,这样做的好处就是你可以随时控制多线程,一般会把if的判断条件做参数,这样可以在外面调用的时候可以控制线程
回复 使用道具 举报
while就是要让满足条件的持续循环,这个条件经常使用if来控制,希望有帮到您.
回复 使用道具 举报
while(true)  一般有标记的。

boolean flag = true
while(flag)

然后在提供一个方法。控制 flag
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马