黑马程序员技术交流社区

标题: 为啥 多线程里 要写 while(true) ? [打印本页]

作者: 张帅    时间: 2011-12-28 23:10
标题: 为啥 多线程里 要写 while(true) ?
为啥 多线程里 要写 while(true)  ?

该贴已经同步到 张帅的微博
作者: 杨丹丹    时间: 2011-12-28 23:35
jdk1.3有以前的版本中(不知道jdk1.4怎么样),终止线程API--stop不起作用,destroy()方法SUN不赞成用,因为它也不能保证线程的退出。而退出线程的run却可以保证退出线程,为了让一个线程处于某种处理数据状态(如:不继的接收网络信息)--即使线程处于活动状态必需在run方法中加while(true)来实现,可以在while(true)中设置跳出循环的条件语句,从外部控制线程的结束。
thread本身的run()方法没有包含某种形式的无限循环。
线程的run()方法中的执行部分只需要执行一次,不需要套一层while(true)循环
作者: 张帅    时间: 2011-12-29 00:43
杨丹丹 发表于 2011-12-28 23:35
jdk1.3有以前的版本中(不知道jdk1.4怎么样),终止线程API--stop不起作用,destroy()方法SUN不赞成用,因为它 ...

姐,没听懂,还是再详细讲解下吧
作者: 韩金蕊    时间: 2011-12-29 07:12
多线程函数和有While(true)没有关系!

多线程函数很多都没有While(true),只是你看到的多线程函数里面有While(true),就认为多线程函数需要While(true),是不对的
程序代码是根据需要而写的,比如说你的程序需要一直监控某个东西,一般都是每隔一段时间去看看什么情况,除了可以使用定时器去做,还可以就是新建一个线程,在这个线程里面就是一个While(true)的死循环。
作者: 曾运    时间: 2011-12-29 07:16
run方法里写while(true){} 是为了让线程多执行一些数据,在用多线程操作同一资源时方便我们看出问题所在。
就好像你去研究某一个问题的结论,你抽取的研究样本数据越大,那么你的结论越准确。

具体写什么看需求,不是非得写while(true){}。
作者: 刘基军    时间: 2011-12-29 10:29
LZ是指视频教程中“使用if()语句出问题,而改用while()就正常”这个问题吗?
作者: 张帅    时间: 2011-12-29 10:59
monghuan 发表于 2011-12-29 10:29
LZ是指视频教程中“使用if()语句出问题,而改用while()就正常”这个问题吗? ...

不是,就只不明白为啥要写 while(true)
作者: 刘基军    时间: 2011-12-29 11:08
张帅 发表于 2011-12-29 10:59
不是,就只不明白为啥要写 while(true)

那是指run()方法下面的while(true)吗?如果是的话,保证线程可以一直执行下去
作者: 为梦而战    时间: 2011-12-29 11:16
一般一个程序里是不提倡写while(true){}这种循环的,容易死锁,至于老毕的视频用它,我想是为了让我们更加的看清楚一个线程具是如何实现的,便于我们深刻理解多线程,也就是为了分析用的。
作者: 杨旭    时间: 2011-12-29 13:48
while(true) 是无限循环最简单表现方式之一
for(;;)也可以用作无限循环
作者: 黄战胜    时间: 2011-12-29 17:33
谁说多线程里非要写while(true),这个根据具体需要写,有必要就写,么必要就不写。

作者: 马新乐    时间: 2011-12-30 21:14
while(true)意思就是让服务器端一直处于监听状态(因为一直没有跳出循环),所以可以不断的监听到客户端发来的信息
作者: 黑马巩伟伟    时间: 2011-12-31 00:41
没有什么语法规定说线程里面一定要用while(true)这个死循环,但是,在当我们在学习线程时为了能更清楚的了解线程的特性,就需要让线程处于一直运行的状态,这样便于我们从运行结果中分析线程特性。
作者: 王冀0127    时间: 2012-1-2 13:51
不是必须用while(true)可能老是为了给我们举例才这样写的,而且大多例子是出现在服务端,这样可以多创建新的线程让我们学习,以后真的在服务器中写的话也可以用别的循环语句,比如你服务器要在每天的哪时哪刻来重启,就可以在条件语句上来设置条件,不用非要用true
作者: 想好了再写    时间: 2012-1-2 14:04
while(true)就是要不断的干一件事情,如果需要就写,不需要就不用,没有什么 硬性规定
作者: wsssx    时间: 2012-1-2 16:17
提示: 作者被禁止或删除 内容自动屏蔽




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