是否可以将 i 的值传递到新的线程对象中?
当前代码:
int cores = 4;
final int n = 10000;
static double sum = 0.0;
Thread[] threads = new Thread[cores];
for (int i = 0; i < cores; i++)
{
threads[i] = new Thread(new Runnable() {
public void run() {
for (int j = i * (n / cores); j < (i + 1) * N / P; j++) {
double x = (j + 0.5) * step;
sum += 4.0 / (1.0 + x * x);
}
}
});
}
问候
最佳答案
创建您自己的扩展Thread
的内部类,然后将您的值传递给该类的实例,无论您想要什么 - 构造函数、setter方法等。
这是使用构造函数的起始代码。
public class MyThread extends Thread
{
private int myI;
public MyThread(int i) { myI = i; }
@Override
public void run()
{
// Your code goes here, referencing the "myI" variable.
}
}
关于Java 将值传递给新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713781/