我設計了一個java應用程序。一位朋友建議使用多線程,他聲稱將我的應用程序作爲多個線程運行會顯着減少運行時間。java應用多線程設計與優化
在我的主類中,我進行了一些超出我們範圍的操作來填充全局靜態變量和哈希映射,以便在整個生命週期中使用。然後,我在數組列表的條目上運行應用程序的核心。
for(int customerID : customers){
ConsumerPrinter consumerPrinter = new ConsumerPrinter();
consumerPrinter.runPE(docsPath,outputPath,customerID);
System.out.println("Customer with CustomerID:"+customerID+" Done");
}
爲給定客戶的這個循環個XML的每次迭代是從機器,解析和計算採取在解析的數據獲取。稍後,處理後的結果將寫入文本文件(獲取和寫入的數據最多可達幾Giga字節,平均可達50 MB)。多個迭代可以在同一個文件上寫入。
我應該讓這段代碼是多線程的,這樣每一組客戶都被帶入一個獨立的線程嗎?
我如何知道最優化的線程數量?
在實現多線程時需要考慮哪些最佳實踐?