如何使用多线程从文本文件中读取输入

时间:2015-12-01 11:30:26

标签: java multithreading

我的文件名是input.txt,数据为

PTPCNPHI-NT4015 
PTPCBPHI-NT4016
PTPCBPHI-NT4017
PTPCBPHI-NT4018
...etc

PTPCNPHI-NT4015 ---是StoreName我正在连接并在单店上执行我的操作(采取备份)

我希望我的逻辑必须为所有与多个线程并行的商店运行

1 个答案:

答案 0 :(得分:2)

大多数情况下,最好的方法是只有一个线程可以从文件中执行实际读取,因为并行读取几乎没有任何好处。读取输入后,可以将其提供给工作线程进行处理。

根据输入是否适合您的可用内存,多线程部分可能以不同的方式完成:

  • 如果输入符合内存,则可以创建thread pool,然后为输入中的每个条目添加新任务。该池将对所有输入进行排队,并将它们提取到工作线程。
  • 如果输入不适合内存,Producer-Consumer方法可能是合适的,其中生产者是基于文件内容“生成”输入的单线程,并且有多个消费者处理输入。 / LI>