package com.test.sjcd;
public class Data {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
package com.test.sjcd;
public class SubThread extends Thread{
private Data data;
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public SubThread()
{
}
public SubThread(Data data)
{
this.data=data;
}
public void run()
{
System.out.println("子线程内:"+data.getValue());
this.data.setValue(200);
Test.callback();
}
}
package com.test.sjcd;
public class Test {
static boolean flag=false;
public static void main(String[] args) {
Data data=new Data();
data.setValue(20);
System.out.println("调用子线程前,值为"+data.getValue());
SubThread subThread=new SubThread();
subThread.setData(data);
subThread.start();
while(!flag);
System.out.println("调用子线程后,值为"+data.getValue());
}
public static void callback()
{
flag=true;
}
}