两个线程同时运行,
在主线程运行到System.out.println("j="+j);时
另外一个线程还没有运行到i=10;
所以结果是
j=1
i=10
————————————————————————————-
换成这样试试:
class A implements Runnable{
public int i=1;
public void run(){
i=10;
System.out.println("i="+i);
}
}public class Test{
public static void main(String args[]){
A a=new A();
new Thread(a).start();
for(int c=1;c<10;c++){
System.out.println("temp "+c);
}
int j=a.i;
System.out.println("j="+j);
}
}————————————————————————————————
在dos下运行
其中的一次结果为
temp 1
temp 2
temp 3
j=10
temp 4
temp 5
temp 6
temp 7
temp 8
temp 9
i=10但是用java Test >>1.txt输出到文本
结果为
temp 1
temp 2
temp 3
temp 4
temp 5
temp 6
temp 7
temp 8
temp 9
j=1
i=10
主线程运行太快了!
在主线程运行到System.out.println("j="+j);时
另外一个线程还没有运行到i=10;
所以结果是
j=1
i=10
————————————————————————————-
换成这样试试:
class A implements Runnable{
public int i=1;
public void run(){
i=10;
System.out.println("i="+i);
}
}public class Test{
public static void main(String args[]){
A a=new A();
new Thread(a).start();
for(int c=1;c<10;c++){
System.out.println("temp "+c);
}
int j=a.i;
System.out.println("j="+j);
}
}————————————————————————————————
在dos下运行
其中的一次结果为
temp 1
temp 2
temp 3
j=10
temp 4
temp 5
temp 6
temp 7
temp 8
temp 9
i=10但是用java Test >>1.txt输出到文本
结果为
temp 1
temp 2
temp 3
temp 4
temp 5
temp 6
temp 7
temp 8
temp 9
j=1
i=10
主线程运行太快了!
解决方案 »
- 如何得到png图片的boundary
- 初学者的构造方法问题,求问~~
- 一个关于jdk1.5的泛型的问题,该怎么做?
- 请问可以在applet中用socket和服务器程序中其他语言写的服务器的socket建立联系吗(200)?
- Java初学者问题
- 〈求助〉关于java和vc及jsp和asp的具体区别??
- applet能向所属的服务器写数据吗?能在它和其服务器之间建立某种信用关系,来达到写数据的功能吗?
- 救救我,各位高手!!!
- 请问如何在java application 生成菜单
- 用jxl生成了xls(Excel)文件后,文件无法打开
- java中调用数据库,应该倒如那个包啊,多谢了
- 怎么使用类似vc++中的messagebox()一类的东西?
class A implements Runnable{
public int i=1;
public void run(){
i=10;
System.out.println("i="+i);
}
}public class Test extends Thread{
public static void main(String args[]){
A a=new A();
new Thread(a).start();
try{
sleep(1000);
}
catch(InterruptedException e){
}
int j=a.i;
System.out.println("j="+j);
}
}
你之前给出的例子,在dos下运行的结果真的是那样的吗?
我运行了一下,整个循环的输出还是完整的。循环和j的输出应该是同属于主线程,所以,我觉得循环的输出应该总是在j的输出之前。我不明白为什么j能在循环的中间被输出。能给我讲解一下吗?
呵呵~~~
多谢了!!