シンプルなWebスパイダーを作成しています。URLを受け入れ、HTMLをダウンロードして、残りのURLを抽出するだけです。次に、新しいURLごとにこのプロセスを繰り返します。また、同じURLに2回アクセスしないようにし、同時ダウンロードの数を制限しています。
すべての一意のURLが使い果たされた後(数日、数週間、または死んで消えるまで実行される可能性があります)、UIを更新したり、単にアプリケーションを終了したりするなどのアクションを実行したいと思います。
問題は、最後のスレッドの実行が終了したことを検出する方法がわからないことです。
このスレッドの問題は解決されましたか?私は問題を間違って見ていますか?
1つの考えは、すべての子が終了する(参加する)まで、各スレッドを存続させることでした。問題は、スレッドの数が指数関数的に増加することです。このような長時間実行されるプロセスの場合、OSリソースをすぐに使い果たしてしまいます。