2013-05-30 68 views
1

我對java併發性有個疑問。 現在我有一個日誌文件,我想用其他線程來處理日誌文件。每個線程在文件中處理一行(一條記錄)。在最後,最後一個線程將處理後的記錄寫入同一個文件中。我想知道如何使用原始日誌文件保存記錄順序?multiThread處理日誌文件,如何在日誌文件中保持行順序

+0

我不知道你在做什麼每個文件的每一行來證明在多線程中執行它的開銷。 –

+0

當您想分析您的日誌文件或製作下載程序時,這是一個常見問題。多線程可以提高下載速度,解決這個問題可以確保下載文件有序,而不是一團糟。 –

+0

我想你誤解了我的觀點。 –

回答

1

您應該編寫一種機制將行號與每條記錄相關聯。創建一個數據結構來緩衝寫入正確的記錄索引的行。最後轉儲文件。

+0

謝謝,我的想法與你的一致,我已經實現了。 –

+0

@amberzhang我很高興你能夠通過使用建議來解決你的情況,而不是從任何其他人那裏尋找代碼:-)爲你感到驕傲,任重而道遠! –

+0

謝謝,我已經將我的代碼提交給github,https://github.com/amberlife/learnProcess/tree/master/src/NetWorkProgram/ch6,您可以在LookupThread.java,PooledWeblog.java,Line中看到我的解決方案。 java。 –