在java applet中我正在绘制图表由JCChart。现在,在我查看任务调度程序后绘制图表之后,它显示Java.exe的cpu利用率仍高于50。现在我使用带插件的JConsole来观察java中哪个线程占用了大量的CPU利用率。然后它显示AWT-EventQueue-2占用主要时间并且该线程处于Runnable状态并且从不启动。它的作用就是下面的一些......
sun.java2d.loops.FillRect.FillRect(Native Method) sun.java2d.pipe.LoopPipe.fillRect(Unknown Source) sun.java2d.pipe.ValidatePipe.fillRect(Unknown Source) sun.java2d.SunGraphics2D.fillRect(Unknown Source) com.klg.jclass.chart.JCChart.paintComponent(JCChart.java:670) javax.swing.JComponent.paint(Unknown Source) com.klg.jclass.chart.JCChart.paint(JCChart.java:593) javax.swing.JComponent.paintChildren(Unknown Source) javax.swing.JComponent.paint(Unknown Source)
任何机构都可以告诉我如何防止我的applet发生这种情况,或者我该如何阻止它。
答案 0 :(得分:3)
在Java中停止线程的推荐方法是以线程将自己完成执行的方式实现逻辑。如果你有一个循环,你可以考虑根据一个动作结束它(例如用户点击完成的停止按钮)。根据您的详细信息,似乎applet正在重新绘制。可能你应该看一下触发重绘的原因。