为什么涉及线程的程序首先返回“是”

时间:2015-12-11 00:37:58

标签: java

当我运行以下代码时,它返回Yes然后返回9否。但是我认为它应该是10否,因为start()将执行运行段,将mysting设置为No,不是吗?请帮忙解释一下。谢谢!

class myThread implements Runnable{

String mystring = "Yes ";

public void run() {

this.mystring = "No ";

}

public static void main (String args[]) {

myThread t = new myThread();
new Thread(t).start();

for (int i=0; i<10; i++){

    System.out.println(t.mystring);
}

}

}

1 个答案:

答案 0 :(得分:0)

线程用于并行执行。这意味着Thread的代码与main - Method的代码并行运行。但是不能保证执行的顺序。这正是您在这里遇到的。 main中的代码略快于Thread的启动,因此第一个输出为“是”。