Java 为同时运行的多个批处理文件创建共享内存

Java 为同时运行的多个批处理文件创建共享内存,java,batch-file,shared-memory,pos-tagger,Java,Batch File,Shared Memory,Pos Tagger,我正在尝试通过批处理文件为不同的文件运行标记器。这是我的代码: String runap1="cd spt1"+"\n"+"java -Xss8192K -Xms128m -Xmx640m -classpath stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -model models/bidirectional-wsj-0-18.tagger -textFile "+fff[g]+">tag\\"+r1

我正在尝试通过批处理文件为不同的文件运行标记器。这是我的代码:

String runap1="cd spt1"+"\n"+"java -Xss8192K -Xms128m -Xmx640m -classpath stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -model models/bidirectional-wsj-0-18.tagger -textFile "+fff[g]+">tag\\"+r1+"\nexit" ;

FileWriter fw1 = new FileWriter("ac.bat");
BufferedWriter bw1 = new BufferedWriter(fw1);

bw1.write(runap1);
bw1.close();

Runtime rx = Runtime.getRuntime();
Process p = null;

try {
    p = rx.exec("cmd.exe /c start ac.bat");
} catch(Exception e) {
    System.out.println("Error");
} // TODO

try {
    Thread.sleep(15000);
} catch (InterruptedException e) {
    System.out.println("Thread interrupted");
}
这需要很长时间来处理,我的电脑挂起了好几次。我想为标记器创建一个共享内存,以便它只加载一次,并且 所有批处理文件都将使用该共享标记器;他们不应该每次都加载标记器。
如何执行此操作?

如果将数据存储在内存映射文件中,则可以跨进程多次加载数据,而无需额外拷贝。您甚至可以在一个过程中进行更改,并查看另一个过程中的更改

问题是您必须使用堆外内存。如果数据文件已经是您可以使用的二进制格式,那么这种方法最简单。i、 你不需要解析它