Java并发,读取文件创建对象并存储它们
我目前正在使用Java并发,读取文件创建对象并存储它们,java,file-io,concurrency,Java,File Io,Concurrency,我目前正在使用java.nio读取文件(使用files.readAllLines),然后每一行都被传递来创建一个对象[newobject(line)],对象被添加到一个集合中 每个文件的解析方式都不同,因此有3种类型的对象,其中2种被添加到映射中,当它们第三次添加到集合中并添加到前面两个映射中的变量时,应该首先执行这些操作[使用类似的方法: get(var).x.add(Object)]. 我真的不知道如何并发编码,并且很难找到与此类似的东西,但我认为可以使用并发来创建前两个集合,或者在所有三
java.nio
读取文件(使用files.readAllLines
),然后每一行都被传递来创建一个对象[newobject(line)]
,对象被添加到一个集合中
每个文件的解析方式都不同,因此有3种类型的对象,其中2种被添加到映射中,当它们第三次添加到集合中并添加到前面两个映射中的变量时,应该首先执行这些操作[使用类似的方法:
get(var).x.add(Object)].
我真的不知道如何并发编码,并且很难找到与此类似的东西,但我认为可以使用并发来创建前两个集合,或者在所有三个集合中使用它,并最后完成最后一批(或者让它等待,如果需要编辑的变量尚未设置,则稍后再进行)
任何帮助都将不胜感激,如果您需要我所寻找的任何澄清,请询问。因此您有3个文件,其中2个文件将放入地图,最后一个文件用于添加地图的某些值,对吗
您可以为两个文件中的每个文件创建线程,并将数据放入映射。这里重要的一点是,您必须使用并发数据结构,如
ConcurrentHashMap
或synchronized map。我将使用以下全局步骤并行执行此操作:
Executors.newFixedThreadPool(someSize)
Collections.synchronizedSet(newhashset());
同时执行文件操作通常不是一个好主意,因为它会导致磁盘浪费大量时间来回移动磁头。