Я не совсем уверен, какова ваша цель из краткого описания, но я просто хочу предупредить вас, что параллельное чтение файлов с одного жесткого диска, как правило, не очень хорошая идея, потому что механическую головку диска нужно искать следующее место чтения и, следовательно, чтение с несколькими потоками, заставит его продолжать подпрыгивать и замедлять, а не ускорять.
В случае, если вы хотите прочитать части файлов и обработать их параллельно, я рекомендую вам взглянуть на решение для одного производителя (для последовательного чтения файлов) для нескольких потребителей (для обработки файлов).
Редактировать : Если вы настаиваете на использовании нескольких считывателей, вам, вероятно, следует изменить свой код следующим образом:
public static void main(String args[]) {
new Thread(new ThreadTask(new File("D:/test1.log")),"thread1").start();
new Thread(new ThreadTask(new File("D:/test2.log")),"thread2").start();
}
private static class ThreadTask implements Runnable {
private File logFilePath;
// you should inject the file path of the log file to watch
public ThreadTask(File logFilePath) {
this.logFilePath = logFilePath;
}
public void run() {
// read file
}
}