java에서 슬리핑 스레드를 중지 또는 중단하는 방법? 스레드를 잠글 때 스레드를 중지하여 동기화를 중지하려면 run() 메서드에서 10 분 동안 데이터를 동기화하는 스레드가 있습니다. 어떻게이 일을 성취 할 수 있습니까?슬리핑 스레드 인터럽트 또는 중지
답변
스레드에서 interrupt() 메소드를 호출하십시오. 이것에 의해 sleep가 취소되어 InterruptedException가 Throw됩니다.
스레드가 잠자기 상태가 아니며 Thread.sleep과 같은 작업을 수행하려고합니다. – Jaydev
Thread.interrupt()
을 사용하여 휴면 스레드를 중단 할 수 있습니다. 이제는 스레드를 중지하는 것이 더 이상 사용되지 않습니다. (Thread.stop()
가 있었지만 큰 도움이되지 않았습니다.)
잠자기 대신 스레드가 시간 초과로 개체를 알릴 때까지 대기하고 스레드를 깨우기 위해 개체를 간단하게 알릴 수 있습니다.
Frederik이 맞습니다. call Thread.interrupt(); 방금 경고 했으니 stop()은 Java 1.1부터 사용되지 않으므로 사용하지 마십시오. 및 기타 경고. 나는 sleep()을 사용하고 스레드를 인터럽트하고 싶다면 wait() 및 notify()로 이동하는 것이 좋은 순간이라고 생각한다. 자바 쓰레드에 대한 많은 자습서가 있고 java.lang.Thread의 javadoc이 충분하기 때문에이 API에 익숙하지 않다면 계속 읽을 수 있습니다.
수레 (Suresh), 저는 한 가지 문제에 관심을 기울이고 싶습니다. interrupt() 메서드 자체는 스레드를 인터럽트하지 않습니다. 플래그를 true로 설정하여 스레드에 인터럽트 요청을 보냅니다. 일반적으로 스레드는 취소/중단 정책을 처리해야합니다. 이것은 Java Concurrecy in Practice, 섹션 7.1 작업 취소에 자세히 설명되어 있습니다.
Thread.sleep 및 Object.wait와 같은 라이브러리 메소드를 차단하면 스레드가 인터럽트 된 시점을 감지하여 일찍 복귀합니다. 그들은 인터럽트 상태를 지우고 InterruptedException을 던져 인터럽트에 응답합니다.
내가 말할 수 없기 때문에 다른 답변을 올리겠습니다. 나는 단지 Alexandr이 말한 것을 강화하고 명확하게하고 싶다. interrupt()
은 Thread
에만 플래그를 설정하고 확장 된 Thread
또는 Runnable
오브젝트는 인터럽트되었을 때 수행 할 작업을 수행하기 위해 Thread.interrupted()
으로 인터럽트되었는지 확인해야합니다.
interrupt()
도 wait()
또는 sleep()
을 중지하지만 이러한 방법은 인터럽트 플래그를 설정 해제합니다. 따라서 잠자는/대기중인 스레드에서 interrupt()
을 호출하면 잠자기/대기는 중지되지만 예외가 발생하는 경우를 제외하고는 중단되었음을 알 수 없으며 중단되지 않습니다.
sleep()
및 wait()
메서드로 재정의 할 수없는 자체의 인터럽트 플래그를 구현하여 프로그램을 수정할 수있었습니다. 또한 Thread.currentThread().interrupt()
으로부터 스레드를 인터럽트 할 수 있음을 알고 있습니다.
- 1. C# 스레드 - 인터럽트
- 2. 네이티브 스레드 인터럽트
- 3. 부스트 (v1.33.1) 스레드 인터럽트
- 4. DatagramSocket.receive에서 스레드 인터럽트
- 5. MFC 스레드 중지
- 6. 대기 시간 동안 블로킹하지 않고 인터럽트 스레드
- 7. Android C2DM 슬리핑 전화기
- 8. 다운로드 스레드 일시 중지
- 9. 자바 서버 중지 스레드
- 10. 중지 된 스레드 시작?
- 11. Java에서 루핑 스레드 중지 중
- 12. 차단 또는 수면 인터럽트 핸들러
- 13. WebApp에서 스레드 시작 및 중지
- 14. WPF - UI 스레드 일시 중지?
- 15. 루비 스레드 시작 및 중지
- 16. 파이썬 일시 중지 스레드 실행
- 17. 인터럽트/인터럽트 처리기 이해, PIC
- 18. 스레드 일시 중지 - HistoryRecord의 활동 일시 중지 시간 초과
- 19. vb.net의 타이머 인터럽트 문제
- 20. 스레드 동기화 및 스레드 일시 중지 \ 다시 시작
- 21. JAVA : 너무 많은 시간이 지난 후에 인터럽트 스레드
- 22. 슬리핑 설명 파일 양식 기존 Java 클래스
- 23. IntelliJ - 디버깅 중에 스레드 일시 중지
- 24. 파이썬 스레드 일시 중지 및 대기
- 25. Android - while 루프를 사용하여 스레드 중지
- 26. Silverlight : 사용자 피드백을 기다리는 동안 스레드 중지
- 27. 이벤트 대기 중 스레드 일시 중지
- 28. surfaceView 스레드 일시 중지 및 재개 방법
- 29. 인터럽트 및 인터럽트 처리에 관한 질문
- 30. 인터럽트 스레딩이란 무엇입니까?
정확한 복제물이 더 이상 없습니다 :-( –
작성자가 중복을 제거했기 때문에이 질문을 다시 열어야합니까? – Craigy