2011-06-25 19 views
1

複数のスレッドで同じファイルを誤ってロードすることなく、単一のディレクトリから複数のスレッドでファイルをロードする戦略が必要です。Javaスレッド同じディレクトリから複数のファイルをロードする

対処:

  1. 各スレッドの順番は、ArrayListのプロセスパラレルとしてのデータ構造に追加するファイルのセットを収集することを許可します。

  2. は、ファイル名を取るとにかく最後の5桁は番号で、​​は1,2,3,4,5を与えるだろうかと、それぞれのmod結果にそれらのファイルがThread 1、... Thread 5を対応させて処理されます。

私は相互排除の問題がないはずの解決策が必要です。あなたの経験からあなたのコメントを教えてください。

答えて

1

本質的に、スレッドセーフなリストへのアクセスが機能するはずです。私はと思う:

  • BlockingQueue
  • 内のファイルのリストを入れ、各スレッドは継続的にキューから次の項目(ファイル)を取得し、それを処理しています。
1

すべてのファイルをBlockingQueueにプッシュし、スレッドプールでファイルをキューから引き出します。

このように、ファイルは同時にアクセスされず、相互排除の必要はありません。

関連する問題