我想创建一个FileProcessor,它将按顺序读取文件。这个类将由多个线程访问,每个线程将读取该行并在处理该行后将其存储在数据结构中。到目前为止,我已经想到了解决设计问题的步骤:
带有任务的类FileProcessor:将打开文件的方法getline。 BufferedReader将读取每一行并返回该行。
实现runnable的第二类FileThread。在run方法中,在FileProcessor对象上调用getline()。该线程还将处理该行并将其存储在数据结构中。
第3类将创建FileThreads的多个线程。
我知道这个设计有我能想象的错误。
请帮忙。
答案 0 :(得分:1)
不,设计不好。
实例化Executor池,读取文件并完成工作的类是唯一需要了解EOF的类。接受他们的部分并完成工作的线程不必知道。
不要使用原始线程;利用像Excecutor这样的新并发类。