while(true)里面没有退出条件,成死循环了。

解决方案 »

  1.   

    while循环里面要加break跳出循环的好
      

  2.   

    1、while是死循环
    2、使用了System.out.println,这个属于IO操作,当IO操作频率很高的时候,会占用大量系统资源,从而导致系统变慢
      

  3.   

    死循环  你应该设置一个跳出的flag
      

  4.   

    谢谢纪委的回答,可是
    if(tick>0)不算是退出的条件吗?打印语句里面还有“tick--”呢
      

  5.   

    如果非必要建议使用for循环控制比while好,至少不容易出现这种死循环。
      

  6.   

    线程while添加个等待Thread.sleep(200);
    不然光循环去了,没法干别的事了
      

  7.   

    if只是输出不输出语句的判断条件,即使不走判断,循环依然在继续,你写的这个if不具备退出条件。
      

  8.   

    死循环,即使tik<0,while还一直在执行
    可以把while(true)改成while(tik>0)
      

  9.   

    感觉这个不是线程安全的方法吧,这么多线程用一个int会不会出事呢,我也是新手
      

  10.   

    即便是真的需要死循环,也需要加个休眠语句,否则会吃光CPU的了。
      

  11.   

    使用死循环的正确方法:http://goobbe.com/questions/2231983/are-whiletrue-loops-so-bad
    死循环也不一定会把cpu全部用完
    http://goobbe.com/questions/1885885/why-does-whiletrue-with-thread-sleep-cause-100-cpu-usage
      

  12.   

    你没有实现线程同步,同时启动的几个线程都会去执行while循环,会不断的执行输出操作,你的ticket--是不会起到循环推出的作用的,因为对每个线程来说,他们各自的ticket初值都是30,CPU会不断的执行,所以你会发现你的电脑变慢。
      

  13.   

    死循环了···
    如果要一直循环,最好是在死循环里面加个 Thread.sleep(50);  让CPU休息一下···