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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题是这样的:编译通过,但是运行的时候在输出完“Thread-0...1”后,cmd就挂掉不动了,就像死循环一样。这个是什么问题啊?代码都是照着视频打的,就是名称不一样而已。其他格式什么都没有变,但是就是挂了,就像死循环一样编译通过,也可以运行,就是程序一直不停止。
问题发现及解决过程:原来是按照视频上面的代码打的,但是在我运行的时候就出现了此问题。然后我就郁闷了,怎么看视频上面老师运行的都没有问题的。我就回头看了一次视频,发现老师的也有同样的问题,而且听到一句:“Ctrl+c“。然后我就试了下,在输出完以后按了“Ctrl+c“。果然跳出程序了。这样才知道“Ctrl+c“可以终止程序执行。惭愧啊。然后我又想,为什么程序不会自己跳出来。就回头看了代码,才发现while(true)这里在 i == 0 以后还是会进入循环,只是没有执行动作而已。所以最后把true改为 i > 0 了。

感慨:1.视频里面老师的代码只是为了让我们学会使用各知识点,所以代码不是完美的。
           2.在碰到问题的时候要认真的检查代码。发现问题所在然后解决他。
           3.有时候问题会出现在很基础的地方,所以写代码的时候要严谨。
           4.看视频要认真,有时候一句话就是一个知识点。

题外话:还是蛮喜欢编程的,虽然现在只是在学习,跟着视频打代码,但是往往或多或少会出现一些问题,但是我很喜欢那种出现问题然后发现他然后解决它的感觉。不知道大家有没有。
  1. class Test implements Runnable
  2. {
  3.         private int i = 50;
  4.         public void run()
  5.         {
  6.                 while(true)
  7.                 {
  8.                         if(i>0)
  9.                         {
  10.                                 System.out.println(Thread.currentThread().getName()+"..."+i--);
  11.                         }
  12.                 }
  13.         }
  14. }

  15. class  RunnableTest
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 Test t = new Test();
  20.                 Thread t1 = new Thread(t);
  21. Thread t2 = new Thread(t);
  22. Thread t3 = new Thread(t);
  23.                 t1.start();
  24. t2.start();
  25. t3.start();
  26.                 System.out.println("Hello World!");
  27.         }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
看来,以后看学习视频 要更加仔细了,要不然知识点就在一瞬间就错过了,感谢楼主发帖,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马