package p.com.utik;
class Data{
private String title;
private String note;
public synchronized void set(String title,String note)
{
this.title=title;
this.note=note;
}
public synchronized String get()
{
return this.title+" "+this.note;
}
}
class DataProvider implements Runnable{
private Data data;
public DataProvider(Data data) {
this.data=data;
}
@Override
public void run() {
for(int i=0;i<50;i++)
{
if(i%2 == 0)
{
this.data.set("zhangsan","is bad man");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
this.data.set("People","are hard-working");
}
}
}
}
class DataGettor implements Runnable{
private Data data;
public DataGettor(Data data) {
this.data=data;
}
@Override
public void run() {
for(int i=0;i<50;i++)
{
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.data.get());
}
};
}
public class TestDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Data data=new Data();
new Thread(new DataProvider(data)).start();
new Thread(new DataGettor(data)).start();
}
}
同步问题得到解决,但无法解决交替问题