用于读取.txt的多线程BufferedReader

Eth*_*man 1 java multithreading bufferedreader

我想阅读.txt行以完成任务,然后移至下一行。

为了使程序更快,我想使用多线程,因此每个线程都尝试一行。

问题是,我不希望线程1与线程2尝试同一行。

有任何想法吗?

Jon*_*eet 5

我建议您有一个线程来完成所有读取,然后将这些行放入生产者/消费者队列(例如LinkedBlockingQueue)中,然后可以有多个线程作为消费者为该队列提供服务。

您实际上不希望有多个线程在此处执行IO-即使您有多个独立的BufferedReaders,如果您正在从传统磁盘中读取数据,也不想最终在多个位置进行查找。生产者/消费者队列很简单地将读数从处理中分离出来,并使每个部分的隔离测试变得更加容易。