程序如下,可结果为什么会那样呢?package day1;public class Sender extends Thread {
public static int value;
public static boolean flag;

public Sender(){
flag=false;
}

public void run(){
try{
for(int index=0;index<=10;index++){
value=index;
while(flag){
Thread.yield();
}
System.out.println("发送数据:"+value);
Thread.sleep(200);
flag=true;
}
}catch(Exception e){
e.printStackTrace();
}
}
}
package day1;public class Receiver extends Thread {
public Receiver(){

}

public void run(){
int value;
try{
while(true){
while(!Sender.flag){
Thread.yield();
}

value=Sender.value;
System.out.println("接受数据:"+value);
sleep(200);
Sender.flag=false;
}
}catch(Exception e){
e.printStackTrace();
}
}
}package day1;public class Test { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
new Sender().start();
new Receiver().start();
}}结果如下:
发送数据:0
接受数据:0
发送数据:1
接受数据:2
发送数据:2
接受数据:3
发送数据:3
接受数据:4
发送数据:4
接受数据:5
发送数据:5
接受数据:5
发送数据:6
接受数据:7
发送数据:7
接受数据:8
发送数据:8
接受数据:9
发送数据:9
接受数据:10
发送数据:10
接受数据:10