この状況の既知の解決策 (生産者と消費者の問題として) を探しています。
私の場合、2 つのオプションがあります。
- 画像へのリンク,
- 画像へのリンクと他のテキスト ファイルへのリンク (他のリンクを含む) を含むテキスト ファイル。
posix mutexとposix semaphoreを使用して、 C++ (unix 上)でマルチスレッド ダウンローダーを作成しようとしています。
アプリケーションには、最初のテキスト ファイルへのリンクがあります。
- スレッドはスリープします (セマフォ = 0)。
- メイン スレッドが最初のテキスト ファイルをダウンロードします。
- 他のリンクを解析します -- リンクをいくつかのキューに入れます (セマフォ += links_count --> 他のスレッドが起動します)。
- 他のスレッドは他のリンクを生成します。
メインスレッドは?他のスレッドを確認する方法 -- 終了状態?
有限キューを使用すると、デッドロックが発生する可能性があります。テキスト ファイルには多くのリンクが含まれています (キューは他のテキスト ファイルでいっぱいになります)。テキスト ファイルを完成させることはできません。
アイデアありがとうございます。