스레드를 확장하는 클래스를 만들었습니다.스레드를 완전히 멈출 수 없습니다.
이 클래스에는 프로세스 및 IO 스트림을 사용하여 파일을 다운로드하는 데 몇 분이 걸리는 몇 가지 메서드가 있습니다.
나는 또한 스레드를 멈추는 데 사용하는 JButton을 가지고있다. 현재 ActionListener를 가지고 있는데,이 ActionListener는 ClassName.this.stop()을 수행한다. 이것은 완벽하게 작동합니다.
'public void run()'메서드 내에서 이러한 메서드 중 일부를 실행하고 스레드를 시작합니다.
제 질문은 인터프리터()를 사용하여 내 비추천 Thread.stop() 메서드를 대체하고 스레드를 정상적으로 종료하는 데 사용할 수있는 방법은 무엇입니까?
부울 플래그를 사용하여 스레드가 인터럽트되었는지 확인하지만 run() 메서드가 단순히 일련의 메서드를 실행한다는 것을 확인하는 것이 좋습니다. 일부 메서드는 루프가 모든 메서드를 평가할 때까지 평가되지 않습니다. 실행을 마쳤으며, 심지어는 'InterrupedException'이 발생하고 루프가 다시 시작됩니다.
또 다른 문제는 다운로드가 진행중인 경우 다운로드가 완료되고 스레드가 중단되었는지 다음 번에 확인하기 위해 몇 분이 걸릴 수 있다는 것입니다. 나는 모든 것을 멈추고 객체가 '그 자체와 그 안에있는 모든 것을 삭제'하고 싶습니다. Thread.stop()이 현재 올바르게하고 있습니다.
아무도 아이디어가 없습니까?
다음 줄을 따라 뭔가를 시도하십시오 ... http://stackoverflow.com/questions/13656244/given-two-java-threads-stop-one-thread-when-one-of-them-finishes/13659892#13659892 – xagyg