java多线程程序为什么越跑越慢 我的多线程程序开始几个钟头还挺快,CPU也就占用0-%30左右。可是慢慢地,越来越慢,CPU占用%100、程序却不怎么运行了(从控制台打印信息来看)。大家说这什么原因?是不是太累了?每跑完一段就让它们Sleep一下。肯定不是内存泄露的原因吧,我用jprofier测试,也没发现内存泄露,这也与内存泄露没关系吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 死循环了吧,要不就是notify太频繁但却又不能真正唤醒某个线程 线程主要是占用CPU资源,和可能你程序在运行时建立了线程,但是这些线程又没有被及时释放掉,所以运行的线程数越来越多,导致它们大量占用cpu资源,这和内存泄漏其实没什么关系。本身线程的建立就是比较消耗系统资源的,而且线程本身也很难处理,必须要处处小心,不然会到处出问题,而且出了问题还不知道哪出了问题。 一点小小的建议:首先你看看你的程序有没有一般性的内存泄露其次,再看看是不是的确由于你的多线程引入的复杂性造成的泄漏推荐一个工具,netbean自带的性能分析工具profiler,可以检测这些问题,推荐 线程多了,他们占用的cpu时间段就多,在线程间不断的转换也多 线程多了 ,程序会报HEADSTACK这个错误,很明显不是 线程多的问题,是虚拟机内存占用太大,没有被及时回收。可以尝试用System.gc(); jdk自带线程池,简单好用。别自己写了。当然可以自己写个练练手。很简单的。 用线程池,或者定时提醒JVM回收垃圾 编程题 weblucene的部署问题 如何把JAVA应用程序封装成可执行文件呢? 请问用java实现java编译器的可行性?有相关资料吗? 求解答? 如何用jdbc往mysql3.2x插入中文? 明天我帮别人考JAVA,但我不是学这个的,现在有几个例子请大家帮忙做一做。急!!! switch问题一个?? 做了一个ABOUT对话框,如何让它在打开时只显示在窗口的正中,而不管窗口的位置在哪里。 如何将List集合插入到数据库中? 用java实现类似QQ自动隐藏窗体的功能(贴边隐藏)!! java 串口通信
本身线程的建立就是比较消耗系统资源的,而且线程本身也很难处理,必须要处处小心,不然会到处出问题,而且出了问题还不知道哪出了问题。
其次,再看看是不是的确由于你的多线程引入的复杂性造成的泄漏
推荐一个工具,netbean自带的性能分析工具profiler,可以检测这些问题,推荐