2012-11-12 3 views
0

각 스레드는 Runnable과 연결되어 있습니다. 잠시 동안 실행 한 후 일부는 상태가 TERMINATED로 변경되었지만 run()에 구현 된 while (true) 때문에 발생해서는 안됩니다. 그래서 추락 한 것 같아, 맞지?스레드가 충돌 한 후의 상태는 무엇입니까?

편집 : 각 스레드는 다른 스레드와 독립적입니다.

+0

각 스레드는 고유합니다. 해당 스레드가 처리를 완료하고 GC를 사용할 수 있습니까? – kosa

답변

1

그들 자체로 예외가 발생했거나 interrupted by another thread 일 수 있습니다. while 루프에서 예외 (예외를 통해)를 뛰어 넘어 완전히 처리를 완료하기 위해 구현 한 흐름 제어가 없다고 가정합니다.

+0

제 콘솔에 데이터가 넘쳐났습니다. 예외가 발생했다면 통보 할 수 없었습니다. 그러나 스레드 상태가 TERMINATE가 될 것이 사실입니까? 내가 혼자 쓰레드를 어떻게 추락 시킬지 전혀 모르므로 묻는다. –

+0

@ YannickWald 아마도 스레드를 "크래시"할 수 없기 때문일 수 있습니다. 잡히지 않은 오류나 예외가 발생하면됩니다. 그러면 스레드가 정상적으로 종료 된 것과 같은 상태가됩니다. –

+0

@ YannickWald 먼저 콘솔을 제어 할 수 있습니다. 볼륨을 줄이려면 필터를 사용하거나 검색 할 수있는 파일에 필터를 지정하십시오. 다른 프로그래머는 오류 또는 예외로 인해 while (true) 루프에도 불구하고 스레드가 TERMINATED 상태가된다는 것을 알 수 있습니다. 프로그램에서만 특정 오류 또는 예외에 대해 알 수 있으며 다음에 수행 할 작업을 결정할 때 해당 정보가 필요합니다. –

관련 문제