1

在 java 小程序中,我正在通过 JCChart 绘制图表。现在,当我查看任务调度程序绘制图表后,它显示 Java.exe 的 CPU 利用率仍然大于 50。现在我使用带有插件的 JConsole 来观察 java 中的哪个线程占用了大量的 CPU 使用率。然后它表明 AWT-EventQueue-2 正在花费大量时间并且该线程处于 Runnable 状态并且永远不会启动。它所做的是一些像下面这样的..

sun.java2d.loops.FillRect.FillRect(本机方法)
sun.java2d.pipe.LoopPipe.fillRect(未知来源)
sun.java2d.pipe.ValidatePipe.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(未知来源)

那么任何人都可以告诉我如何防止我的小程序发生这种情况,或者我该如何阻止这种情况。

4

1 回答 1

3

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

于 2012-10-10T11:53:23.993 回答