我正在尝试读取文件夹中的多个文件并使用线程同时处理它们。
程序的结构是这样的:
// Assuming there are 5 files in the directory
// creating the threads
ExecutorService pool = Executors.newFixedThreadPool(5)
ExecutorCompletionService service = new ExecutorCompletionService(pool)
directory.listFiles().each { eachFile ->
service.submit(new FileReader(eachFile, param2))
}
// the FileReader class
class FileReader implements Callable {
File file
String param
FileReader(File file, String param){
this.file = file
this.param = param
}
Object call(){
LOG.info("Processing file" + filePath)
ConfigInfo configInfo = new ConfigInfo()
configInfo.setFilePath(filePath);
configInfo.setReaderUid(readerUid);
configInfo.setPatternsMap(patternsMap);
new LogfileDataProcessor(configObject, param).processFileContent()
}
}
这里的 call 方法创建另一个对象并在其上调用一个方法。
但奇怪的是,程序在调用方法中执行了一些行后终止(它没有到达其中的最终语句)。我在这里很困惑。有人可以对正在发生的事情有所了解。请帮我