나는 간단한 웹 거미를 만들고 있습니다. URL을 수락하고 HTML을 다운로드 한 다음 나머지 URL을 추출하는 것뿐입니다. 그런 다음 각 새 URL에 대해 프로세스를 반복합니다. 또한 동일한 URL을 두 번 방문하지 않으며 동시 다운로드 수를 제한하고 있습니다.스레드 트리 완료시 감지
모든 고유 URL을 모두 사용한 후에 (며칠, 몇 주 또는 내가 죽은 후에 사라질 때까지) UI 업데이트 또는 단순히 응용 프로그램 종료와 같은 작업을 수행하고 싶습니다.
문제는 마지막 스레드가 실행을 완료했을 때를 감지하는 방법을 모른다는 것입니다.
이 스레딩 문제가 해결 되었습니까? 나는 그 문제를 잘못보고 있니?
한 가지 생각은 모든 자식이 완료 (가입) 할 때까지 각 스레드를 활성 상태로 유지하는 것입니다. 문제는 스레드 수가 기하 급수적으로 증가한다는 것입니다. 이러한 장기 실행 프로세스의 경우 OS 리소스를 빠르게 소모합니다.
나는 다른 사람에게서 비슷한 대답을 얻었다. 자식 스레드를 시작하기 전에 단순히 증가시키고 이후에 감소시킵니다. 카운트가 0이되면, 그 자식 스레드는 "끝났습니다"작업을 시작하게하십시오. 감사! –