package newpackage;
import java.util.logging.Level;
import java.util.logging.Logger;
class test {
public int in = 0;
void helper() {
Thread t1 = new Thread(
()
-> {
add();
}
);
Thread t2 = new Thread(
()
-> {
add();
}
);
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch (InterruptedException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
void add() {
for (int i = 0; i < 40; i++) {
in += i;
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public class Main {
public static void main(String[] args) {
test a = new test();
a.helper();
System.out.println(a.in);
}
}
我想要的是从不同线程同时运行同一个方法。java中的多线程方法
但是上面给出的代码没有给出正确的结果,它给出的输出小于1560(780 + 780)。我该如何实现这一点?
在此先感谢。
重新获得“正确的结果”,您的期望输出是什么,以及您观察到的输出是什么?此外,你的方法什么都不做 - 请发布真实的代码,我们可以编译,测试和修改的代码。 –
“没有给出正确的结果”我认为你的意思是它没有给出你期望的结果,因为它绝对符合Java规范所说的。你认为它应该做什么,它做了什么呢? –
@AndyTurner对不起。为了简单起见,我这样做了。现在编辑。 –