你试着让主线程歇个一秒就得到你想要的结果了.
程序自始至终只有一个对象a,建立的时候它的i=1
当你将它作为参数传递后,run方法运行,使i=10
兄弟自己好好琢磨琢磨
程序执行的很快,一瞬间就完了,那时候a的i值还没有变,就打印了 打印的是1
你让主线程睡一秒,让a的run方法执行完,a的中的i就等于10了
代码如下- class test
- {
- public static void main(String[] args)throws Exception
- {
- int i=2;
- A a=new A();
- new Thread (a).start();
- Thread.sleep(1000);//这里让主线程睡一秒,打印的就是10了
- int j=a.i;
- System.out.print(j);
- }
- }
- class A implements Runnable
- {
- public int i=1;
- public void run(){
- this.i=10;
- }
- }
复制代码 |