gpt4 book ai didi

java - 如何将 for 循环的索引变量传递给匿名 Thread/Runnable

转载 作者:行者123 更新时间:2023-11-29 07:36:20 25 4
gpt4 key购买 nike

我搜索过类似的问题,但它们不涉及 for 循环。我有以下代码:

    image = new BufferedImage[maxFiles];
for (int i = 0; i < maxFiles; i++) {
new Thread(){
public void run() {
try {
file = new File("0" + i + ".jpg");
image[i] = ImageIO.read(file);
} catch (IOException e) {e.printStackTrace();}
}
};
}

如您所见,我想通过自己的线程加载每个图像文件以进行一些优化。不幸的是,for 循环的变量 i 无法通过 run 方法传递,我也无法将其设置为 final 或 static。你会如何解决这个问题?

最佳答案

您可以有一个具有相同值的最终变量。

image = new BufferedImage[maxFiles];
for (int i = 0; i < maxFiles; i++) {
final int index = i;
new Thread(){
public void run() {
try {
file = new File("0" + index + ".jpg");
image[index] = ImageIO.read(file);
} catch (IOException e) {e.printStackTrace();}
}
};
}

您可能还想启动您的线程。

关于java - 如何将 for 循环的索引变量传递给匿名 Thread/Runnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35366147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com