我想阅读 .txt 的行来完成任务,然后转到下一行。
为了让程序更快,我想多线程,所以每个线程都尝试一行。
问题是,我不希望线程 1 尝试与线程 2 相同的行。
有什么想法吗?
最佳答案
我建议您让 一个 线程完成所有读取,然后将行放入生产者/消费者队列(例如 LinkedBlockingQueue
)- 然后您可以让多个线程作为消费者为该队列提供服务.
你真的不希望多个线程在这里执行 IO - 即使你有多个独立的 BufferedReaders
,如果你从传统磁盘读取你不希望最终在多个地方寻找.生产者/消费者队列相当简单地将读取与处理分开 - 并且更容易单独测试每个部分。
关于java - 用于读取 .txt 的多线程 BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30168837/