2015-09-18 62 views
0

我有一個Java類,其中有一個方法讀取數以千計的產品相關記錄。現在對於相同的ProductId,我需要創建一個products(product beans)的列表並將它們發送到不同類中的方法驗證。加速過程。Java多線程場景

我想到產生多個線程 - 每個線程負責發送產品id的每個產品列表到validate()進行驗證。在驗證之後,還需要在調用類中調用另一個方法以供進一步處理。我知道Java中的Exceutor框架並且有一些關於它的信息。問題是爲此設計多線程解決方案是否可行?請指教。

例子:

Class A{ 
List<Product> prodList;-- this prod List is populated with productBeans with same prodId. 

Class B = new Class B(); 
B.validate(prodList); 
processNextStep(); 

我可以生成多個線程可以驗證產品的每一個列表? processNextStep()此步驟需要在validate()完成後處理。

在此先感謝!

+0

告訴我,如果我正確理解你的問題。您有大量產品列表,您可以使用大型列表中的產品填充另一個列表,並且需要驗證較小的列表。 –

+0

Thanks @ bku_drytt。其實我試圖暗示的是,有成千上萬的記錄 - 與產品相關的 - 正在被讀取。現在,這些記錄需要根據產品標識進行分組,並且列表需要發送給validation.After驗證,下一步需要進行performed.So有序加快了各組的驗證過程中,我試圖利用多線程技術 – user5053360

+0

是的,多線程聽起來像在那種情況下是一個好主意,爲您實現。您可以簡單地將記錄拆分爲您選擇的獨立容器(列表),並讓每個線程在其關聯的容器上執行驗證。所以如果你的驗證函數需要一個數組參數,只需要讓每個線程都用自己的記錄數組來執行那個函數。 –

回答

0

執行程序提供了一種簡單的方法來管理線程,但您仍然必須編寫代碼來執行任務並收集結果。其中一個很好的選擇是在java 7中引入的ForkJoin框架。它實際上是一個ExecutorService的實現。

+0

謝謝@ mvd.請看看。 – user5053360