所以我想將參數傳遞給我的線程,而且我的輸出結果並不如預期。下面是我的代碼:將參數傳遞給線程方法時輸出結果不同
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
我真的不知道我怎麼可以更具體。 –