这个小程序为什么一运行电脑就死机啊

江上游泳的鱼 2014-02-25 10:37:43
public class test1
{
public static void main(String[] args)
{
xc xc1=new xc();

new Thread(xc1).start();
//如果再添加一个new Thread(xc1).start()线程就会死机,不知道为啥[/color]



}

}
class xc implements Runnable
{
private int total=20;
public void run()
{

while(true)
{
if(total>0)
System.out.println(Thread.currentThread().getName()+"tickets is"+total--);
}
}


}
...全文
876 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
sca4441479 2014-02-26
  • 打赏
  • 举报
回复
死循环,我在想楼主的20分 怎么分
七神之光 2014-02-26
  • 打赏
  • 举报
回复
Runnable的缺陷
kevinlifeng 2014-02-26
  • 打赏
  • 举报
回复
死循环呀~~~两个线程都启动了的。只是死循环导致死机的~~
xwj 2014-02-26
  • 打赏
  • 举报
回复
死循环造成的
du_bu 2014-02-25
  • 打赏
  • 举报
回复
死循环...
乔不思 2014-02-25
  • 打赏
  • 举报
回复
说实话,我建议楼主再用while true 的时候 让线程sleep一下,慢慢看打印结果,这样很容易让内存挂的
Magician-CH 2014-02-25
  • 打赏
  • 举报
回复
Thread-0tickets is19 Thread-1tickets is20 Thread-0tickets is18 Thread-1tickets is17 Thread-0tickets is16 Thread-1tickets is15 Thread-0tickets is14 Thread-1tickets is13 Thread-0tickets is12 Thread-1tickets is11 Thread-0tickets is10 Thread-1tickets is9 Thread-0tickets is8 Thread-1tickets is7 Thread-0tickets is6 Thread-1tickets is5 Thread-0tickets is4 Thread-0tickets is2 Thread-0tickets is1 Thread-1tickets is3 完全可以啊。。。
haha_321 2014-02-25
  • 打赏
  • 举报
回复
这没有跳出条件,要无限的循环啊。。。
卡卡吉利 2014-02-25
  • 打赏
  • 举报
回复
while(true)
 {
 if(total>0)
  System.out.println(Thread.currentThread().getName()+"tickets is"+total--);
 }
  }
没有跳出循环条件,死循环
代码间的舞者 2014-02-25
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
应该是竞争资源造成的死锁,这个与你的系统有关系的。
+1
a790851624 2014-02-25
  • 打赏
  • 举报
回复
无限死循环,不解释。
江上游泳的鱼 2014-02-25
  • 打赏
  • 举报
回复
可是这段程序是我在书上抄下来的呀??难道书也会错,太坑了吧?
wwcc1681981 2014-02-25
  • 打赏
  • 举报
回复
死循环!死循环!
-江沐风- 2014-02-25
  • 打赏
  • 举报
回复
一死循环电脑也死了!要避免用死循环啊!
另一花生 2014-02-25
  • 打赏
  • 举报
回复
死循环了,对电脑伤害不小= =
爱的人是你 2014-02-25
  • 打赏
  • 举报
回复
while(true)//这个永远满足啊 所以 你要想办法跳出循环 { if(total>0){ System.out.println(Thread.currentThread().getName()+"tickets is"+total--); }else{ break; } }
爱的人是你 2014-02-25
  • 打赏
  • 举报
回复
死循环,都不懂吗? while(true)//这个永远满足啊 何况你也没有跳出循环 { if(total>0) System.out.println(Thread.currentThread().getName()+"tickets is"+total--); } } 你可以这样做 while(true)//这个永远满足啊 所以 你要想办法跳出循环 { if(total>0) System.out.println(Thread.currentThread().getName()+"tickets is"+total--); }else{ break; } }
缺水。的鱼 2014-02-25
  • 打赏
  • 举报
回复
if语句后面加一句 else break; 就不会死了
TheNowWjj 2014-02-25
  • 打赏
  • 举报
回复
while(true) 不死才怪.
裤衩也疯狂 2014-02-25
  • 打赏
  • 举报
回复
引用 5 楼 tlfu_12344 的回复:
不打打印不代表while不走,死循环!
正解,控制台上的停止键一直是红色
加载更多回复(4)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧