gpt4 book ai didi

java - 使用新参数在循环中创建新线程

转载 作者:行者123 更新时间:2023-12-01 08:53:56 26 4
gpt4 key购买 nike

我想在循环中创建新的Runnable。但是,不可能在内部类中使用变量。我无法使用全局/实例变量,因为它会生成错误的结果。我的程序类似于以下简化代码:

public class RunManager {
public void runManager(int delay, final Context context) {
for (int dim = 7; dim < 227; dim++) {
Runnable r = new Runnable() {
@Override
public void run() {
RandomKernels randomKernels = new RandomKernels();
try {
randomKernels.foo(context, dim);
} catch (InterruptedException e) {
Log.e(tag, e.getMessage());
}
}
};
Thread cnnThread = new Thread(r);
cnnThread.start();
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

错误是:从内部类内部访问变量“dim”,需要声明为final。

最佳答案

您的问题是您正在尝试从新线程访问非最终变量。为了从新线程访问变量,需要将其声明为final。在您的 cas 中,您只需将暗淡 int 复制到大小为 1 的最终 int 数组,然后从线程访问该数组。

关于java - 使用新参数在循环中创建新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182274/

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