如何杀死或停止java applet中的其他线程

时间:2012-10-10 11:43:14

标签: java applet thread-safety threadpool jchart2d

在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发生这种情况,或者我该如何阻止它。

1 个答案:

答案 0 :(得分:3)

在Java中停止线程的推荐方法是以线程将自己完成执行的方式实现逻辑。如果你有一个循环,你可以考虑根据一个动作结束它(例如用户点击完成的停止按钮)。根据您的详细信息,似乎applet正在重新绘制。可能你应该看一下触发重绘的原因。