【问题标题】:How to kill or stop other threads in java applet如何杀死或停止Java小程序中的其他线程
【发布时间】:2012-09-30 21:01:00
【问题描述】:

在 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(未知来源)

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

【问题讨论】:

    标签: java applet thread-safety threadpool jchart2d


    【解决方案1】:

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

    【讨论】:

    • 非常感谢@dan,是的,这是由于重新粉刷造成的。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多