请问各位大神:为什么这段代码运行后我的电脑超级慢?几乎就不懂了。。。 while(true)里面没有退出条件,成死循环了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 while循环里面要加break跳出循环的好 1、while是死循环2、使用了System.out.println,这个属于IO操作,当IO操作频率很高的时候,会占用大量系统资源,从而导致系统变慢 死循环 你应该设置一个跳出的flag 谢谢纪委的回答,可是if(tick>0)不算是退出的条件吗?打印语句里面还有“tick--”呢 如果非必要建议使用for循环控制比while好,至少不容易出现这种死循环。 线程while添加个等待Thread.sleep(200);不然光循环去了,没法干别的事了 if只是输出不输出语句的判断条件,即使不走判断,循环依然在继续,你写的这个if不具备退出条件。 死循环,即使tik<0,while还一直在执行可以把while(true)改成while(tik>0) 感觉这个不是线程安全的方法吧,这么多线程用一个int会不会出事呢,我也是新手 即便是真的需要死循环,也需要加个休眠语句,否则会吃光CPU的了。 使用死循环的正确方法: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 你没有实现线程同步,同时启动的几个线程都会去执行while循环,会不断的执行输出操作,你的ticket--是不会起到循环推出的作用的,因为对每个线程来说,他们各自的ticket初值都是30,CPU会不断的执行,所以你会发现你的电脑变慢。 死循环了···如果要一直循环,最好是在死循环里面加个 Thread.sleep(50); 让CPU休息一下··· 为什么说dom4j不可移植? String类中的substring(String.length())怎么能取为空? 请问,java string 类型问题 急!!!!!!问题问的已经是第三遍了,请高手赐教!谢绝非成心解决问题的!谢谢! Justep 谁了解?这个东西好么?做物流网站行么? 运行时错误 请做过这Struts+Spring+Hibernate视频练习例子的大侠进来看看,谢谢! 新手问题? java学到什么程度可以找工作? 请教各位关于线程的wait和notify的问题,谢谢先 JDK nio2的问题 Map中的containsKey方法
2、使用了System.out.println,这个属于IO操作,当IO操作频率很高的时候,会占用大量系统资源,从而导致系统变慢
if(tick>0)不算是退出的条件吗?打印语句里面还有“tick--”呢
不然光循环去了,没法干别的事了
可以把while(true)改成while(tik>0)
死循环也不一定会把cpu全部用完
http://goobbe.com/questions/1885885/why-does-whiletrue-with-thread-sleep-cause-100-cpu-usage
如果要一直循环,最好是在死循环里面加个 Thread.sleep(50); 让CPU休息一下···