如何终止或停止java小程序中的其他线程

如何终止或停止java小程序中的其他线程,java,applet,thread-safety,threadpool,jchart2d,Java,Applet,Thread Safety,Threadpool,Jchart2d,在java小程序中,我用JChart绘制图表。现在,在绘制完图表后,当我观看任务调度器时,它显示Java.exe的cpu利用率仍然大于50。现在我使用JConsole和plugin来观察java中哪个线程占用了大量的CPU利用率。然后,它显示AWT-EventQueue-2占用了大量时间,并且该线程处于可运行状态,从未启动。它所做的是一些像下面这样的 sun.java2d.loops.FillRect.FillRect(Native Method) sun.java2d.pipe.LoopPip

在java小程序中,我用JChart绘制图表。现在,在绘制完图表后,当我观看任务调度器时,它显示Java.exe的cpu利用率仍然大于50。现在我使用JConsole和plugin来观察java中哪个线程占用了大量的CPU利用率。然后,它显示AWT-EventQueue-2占用了大量时间,并且该线程处于可运行状态,从未启动。它所做的是一些像下面这样的

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) sun.java2d.loops.FillRect.FillRect(本机方法) sun.java2d.pipe.LoopPipe.fillRect(未知源) sun.java2d.pipe.validatePie.fillRect(未知源) sun.java2d.SunGraphics2D.fillRect(未知源) com.klg.jclass.chart.JCChart.paintComponent(JCChart.java:670) javax.swing.JComponent.paint(未知源代码) com.klg.jclass.chart.JCChart.paint(JCChart.java:593) javax.swing.JComponent.paintChildren(未知源代码) javax.swing.JComponent.paint(未知源代码)
因此,任何人都可以告诉我如何防止applet发生这种情况,或者如何停止这种情况。

在Java中,停止线程的推荐方法是以线程自己完成执行的方式实现逻辑。如果你有一个循环,你可以考虑基于一个动作来结束它(例如用户点击结束的结束按钮)。从您的详细信息来看,小程序似乎正在重新绘制。也许你应该看看是什么触发了重新喷漆。

非常感谢@dan,是的,这是因为重新喷漆。