我在一个班级中有两种方法 方法1:将BufferedImage数据写入目录B中的每个文件夹,以便在每个文件夹中有1个图像文件。
BufferedImage Array = ...;
for(int a = 0;a < B.listfiles().length;a++)
write Arrray[a] to B.listfiles()[a];
方法2:将已经从B中的每个文件夹创建的数据写入目录C中的每个文件夹
for(int a = 0;a < C.listfiles().length;a++)
write B.listfiles()[a] to C.listfiles()[a]
如何实现多线程,以便在将图像写入B中的文件夹之后立即将图像数据传输到C中的文件夹:
write to folder 1 in B
write to folder 1 in C using data just created from folder 1.
write to folder 2 in B
write to folder 2 in C using data just created from folder 2.
答案 0 :(得分:0)
我会在C
中使用由B
访问的队列。因此,只要B
完成一个文件,就会将其添加到C
的队列中以从中拉出并执行其操作。这是最简单的答案。
for (int a = 0; a < B.listfiles().length; a++) {
write Array[a] to B.listfiles()[a];
boolean callNotify = C.queuedfiles().isEmpty();
queue Array[a] to C.queuedfiles();
if (callNotify) notify();
}
while(true) {
if (C.queuedfiles().isEmpty()) wait();
write C.queuedfiles().poll() to C.listfiles()[a];
}
像这样的东西。然后,您需要在C
完成后实现终止B
的内容
答案 1 :(得分:0)