我正在处理一些图像,然后将它们复制到多个线程中的某个位置。作为处理的一部分,我还将它们添加到列表中。
列表(我在其中添加图像路径)缺少太多元素。我处理了大约2000张图像,而列表中只有3张。
以下是我的代码的一些相关摘要:
ImageHelper.java
/**
* @ManyToOne(targetEntity="Forum", inversedBy="subForums")
* @JoinColumn(name="parent_id", referencedColumnName="id")
*/
private $parentForum;
ImageProcessRunnable.Java
public class ImageHelper {
private static List<String> filePaths = Collections.synchronizedList(new ArrayList<String>());
public synchronized static List<String> getFilePaths(){
return filePaths;
}
}
ImageService.java
public class ImageProcessRunnable implements Runnable {
FObject action;
ImageHelper imageHelper = new ImageHelper();
public ImageProcessRunnable(FObject action) throws IOException {
this.action = action;
}
public void run() {
try {
String filePath = imageProcessor.processImage(file, materialNumberImgName,
ImageHelper.getTempLocation(), ImageHelper.getBoxLocation(), idA2A2, logReport);
// I do get all the file paths in the above line from image processor.
ImageHelper.getFilePaths().add(filePath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
代码正在处理所有映像并将其复制到驱动器,但这只是不将所有映像添加到filePaths列表中。