当我运行以下代码时,它返回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);
}
}
}
答案 0 :(得分:0)
线程用于并行执行。这意味着Thread的代码与main
- Method的代码并行运行。但是不能保证执行的顺序。这正是您在这里遇到的。 main
中的代码略快于Thread
的启动,因此第一个输出为“是”。