java - 用于读取 .txt 的多线程 BufferedReader

标签 java multithreading bufferedreader

我想阅读 .txt 的行来完成任务,然后转到下一行。

为了让程序更快,我想多线程,所以每个线程都尝试一行。

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

有什么想法吗?

最佳答案

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

你真的不希望多个线程在这里执行 IO - 即使你有多个独立的 BufferedReaders,如果你从传统磁盘读取你不希望最终在多个地方寻找.生产者/消费者队列相当简单地将读取与处理分开 - 并且更容易单独测试每个部分。

关于java - 用于读取 .txt 的多线程 BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30168837/

相关文章:

java - 如何在两个for循环中分别使用postDelayed或sleep两次

python - Python-如何与另一个脚本共享实时数据

Java Swing 仅将文件中的唯一行读取到 JtextArea 中

java - 读取/写入文件时如何克服硬件限制。

java - 在java中创建.CSV文件的最佳方法

java - 自定义异常不断给我 "Exception: Unknown exception"

java - 如何在一个线程处于 sleep 模式时实现多线程

java - 使用 bufferedread 和 hashset 检查文件中的行

java - 实现Spring Service根据配置向不同的Kafka主题发送消息

java - 如何使用 Guava 从任何方法获取返回类型?