2012-05-25 65 views
0

我需要使用多線程來讀取批量數據文件和處理數據(如數據驗證,跟蹤驗證失敗並插入數據庫等)。我想使用主線程從文件讀取數據並使用ExecutorService處理數據。使用多線程和ExecutorService使用主線程和進程數據讀取文件

  1. 這是相關方法嗎?如果是的話,我該怎麼做?

  2. 此外,我需要對每個記錄輸出進行一次驗證和完成數據庫操作。我怎樣才能跟蹤每條記錄的輸出?可以把它放在一個共同的變量,並增加失敗記錄數據的計數?

  3. 另外我需要跟蹤有多少記錄順序失敗?

謝謝。

+0

您的瓶頸很可能是數據庫,所以我會先批量處理數據,因爲這樣更有可能提高性能(並且相對簡單)。對於多線程示例,我會快速搜索在谷歌上。 ;) –

回答

0

是的,這是正確的,但是如果處理需要花費大量時間(與讀取文件相比),那麼處理碎片是獨立的,並且您擁有多個核心,這樣您就會有所改進。 讀取數據到任意容器(如果它在內存適合),並使用任何ExecService教程是這樣的:http://tutorials.jenkov.com/java-util-concurrent/executorservice.html

0

你的想法是正確的IMO,我會做這樣的事情:

while ((line = filereader.readLine()) != null) { 
    Mycallable mycallable = new Mycallable(line); 
    executor.submit(mycallable); 
      }