所以我想将参数传递给我的线程,而且我的输出结果并不如预期。下面是我的代码:将参数传递给线程方法时输出结果不同
class BadThreadParam implements Runnable {
static int c;
public BadThreadParam(int a, int b) {
c = a + b;
}
public void run() {
System.out.println(c);
}
}
public class BadThreadParamTest {
public static void main(String[] args) {
BadThreadParam shouldBe3 = new BadThreadParam(1, 2);
BadThreadParam shouldBe5 = new BadThreadParam(3, 12);
shouldBe3.run(); // Expect 3 but is 15. WTF?
shouldBe5.run(); // Expect 15.
}
}
我期待最终的输出是:
3
15
,但我得到:
15
15
所以这是线程干扰的问题?任何人都可以解释为什么会发生?
你能更具体一点吗?就像我如何获得理想的输出? – user227666
我真的不知道我怎么可以更具体。 –