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 に答える