스레드를 실행하는 프로그램이 있습니다. 사용자가 종료 단추 (사용자 지정 단추)를 클릭하면 스레드가 멈추도록 지시 한 다음 JFrame을 처리합니다. 그러나 스레드는 계속 실행됩니다. 내 CPU를 100 % 크랭크 업; 버튼을 클릭 할 때마다 시계가 열립니다. 이것은 그것을 여는 코드입니다. 스레드 실 거예요
new ClockGui().main();
ClockGui
시계이며, 별도의 주 된 .java 파일이 포함되어 내 패키지 내의 별도 된 .java 파일입니다.또한 도움이된다면 버튼을 클릭 할 때마다 CPU가 50 % 올라간다는 사실을 알았고 JFrame을 닫으면 ClockGui, 즉 CPU가 다운됩니다 25 %. 이는 여전히 25 % 증가한 수치입니다. 그래서 문제가 주요 .java 파일에 있다고 추측합니다. 어쩌면 내가 ClockGui에 전화하는거야?
public boolean running = true;
...
private void exitButtonMouseClicked(java.awt.event.MouseEvent evt) { //this is the event that happens when I click the exit button
running = false;
this.dispose(); //this closes the JFrame
}
public class myThread extends Thread {
@Override
public void run() {
while(running) {
...
}
}
}
예상대로 JFrame이 닫히지만 CPU는 여전히 100 %입니다. 스레드를 올바르게 닫고 있습니까? 문제를 어떻게 해결합니까? 스레드를 중지하고 싶습니다.
이 우리를 표시 줄 :
당신은
running
로 선언해야한다. 또는 스택 스냅 샷을 jstack으로 가져 와서 가장 깊은 세 가지 코드를 제공하십시오. – Basilevs