私はマルチスレッドのWebクローラーを構築しています。すべてのプロセスがアクセスできるマップを作成するにはどうすればよいですか?
最初にn
のhrefリンクを取得し、いくつかのデータを解析するスレッドを起動します。次に、それらのリンクを他のスレッドがアクセスできるVisitedリストに追加し、プログラムが完了したときに印刷されるグローバルマップにデータを追加する必要があります。その後、スレッドは新しいn
新しいスレッドをすべて起動します。
すべてのスレッドがアクセス可能な訪問済みサイトのグローバルリストと、すべてのスレッドが書き込み可能なグローバルマップを設定する方法を教えてください。
通常、単純に一部の状態をラップするプロセスはエージェントに基づいています。あなたはそれをメッセージを送信して、状態を問い合わせるか、または取得することができます。ドキュメントについてはhttp://elixir-lang.org/getting-started/mix-otp/agent.htmlを参照してください(はい、私はリンク貼り付けがあまりにも嫌なので、ちょうどコメント:-)) – cdegroot