1
我的批處理過程需要從大文件(1-3G)中讀取行,每個文件可以獨立於另一個進行處理。這些文件可以有10-50M行。我正在考慮產生大約十幾個線程,每個線程將處理預定範圍的緩衝區,例如, T1將同時讀取範圍0-1,T2 1-2等。這意味着,當然,T2需要立即跳入緩衝區位置2,而不讀取0-2。如何僅使用NIO讀取文件的內部段
這種類型的緩衝文件閱讀的分段是否可以與Java NIO一起實現併發?
我的批處理過程需要從大文件(1-3G)中讀取行,每個文件可以獨立於另一個進行處理。這些文件可以有10-50M行。我正在考慮產生大約十幾個線程,每個線程將處理預定範圍的緩衝區,例如, T1將同時讀取範圍0-1,T2 1-2等。這意味着,當然,T2需要立即跳入緩衝區位置2,而不讀取0-2。如何僅使用NIO讀取文件的內部段
這種類型的緩衝文件閱讀的分段是否可以與Java NIO一起實現併發?
這是沒有意義的。 CPU可能允許多個線程,但磁盤仍然是單線程的。所有這些都會導致磁盤抖動。算了吧。
你可以使用RandomAccessFile和seek()跳轉到文件中,但這是基於字節偏移的,所以如果你需要緩衝區跳轉到'10M行',你需要更多的處理。 – Thomas 2013-04-05 16:25:30