2013-03-01 21 views
0

我的要求是這樣的。 有一箇中央資源庫,用戶將放置多個xml文件, 我們的目錄監視器服務(簡單的java類)將選取xml文件並對其進行處理。Java中的多個文件的並行處理

在這種情況下,我們該如何去進行併發處理? 我們應該去一個接一個的xml處理還是併發處理?

通常在現場項目中我們應該採取哪種方法?

+1

除非文件在GB或非常大,否則沒有必要同時進行。我有大約100 MB的文件,完全解析它幾乎不需要25秒。致力於改進解析而不是並行檢索 – Jatin 2013-03-01 07:03:51

+0

您可以對其進行配置。如果要處理的文件數量比較多,比如x數,使用多線程並行處理它們,否則一個接一個地處理。 – 2013-03-01 07:14:07

回答

0

在這種情況下,我們怎麼能去併發處理?

目錄觀察器服務可以挑選新文件,並將它們放入一個隊列中,在該隊列中多個線程選取文件並根據需要採取行動。

我們應該去一個接一個的xml處理還是併發處理?

這取決於你想如何快速的處理完成,其他因素 如將加工在整個單獨或將處理需要訪問其他已目前的文件,你會在某些時候需要等待其他資源?

通常,在當前的一些項目,我們應該採取哪些方法呢?

並行處理可能會比較快,但可能需要更多一點的內存

+0

如果我們去併發處理的話,我應該遵循以下鏈接 http://www.javacodegeeks.com/2011/12/using-threadpoolexecutor-to-parallelize.html 如果我去一個一個XML處理,然後又將如何我執行這個? – user739115 2013-03-01 09:06:35

0

在這種情況下由遠及你最大的成本會IO,除非你正在做一些與同樣昂貴的數據(說說話到另一個服務)

你可能會發現你釀出許多線程且大多不做任何事,你正在處理的負載(內存)文件的速度比你實際加載它們。

我建議你看看你是否真的需要做到這一點首先,如果您實際上通過實現一個併發的方式獲得任何東西。你可能會發現你在吞吐量方面沒有獲得任何意義,但是你已經獲得了額外的代碼複雜度。