【发布时间】:2017-04-23 21:46:33
【问题描述】:
所以我试图将参数传递给我的线程,但我的输出不符合预期。以下是我的代码:
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
那么这是线程干扰的问题吗?谁能解释为什么会这样?
【问题讨论】:
标签: java multithreading static