【名师课堂】Java高级开发

【名师课堂】Java高级开发

Java核心第三部
156课时 |
31736人已学 |
(17 评论)

加入学习
加入学习

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();
    }

    

}

同步问题得到解决,但无法解决交替问题

[展开全文]

授课教师

阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >

本课程相关云产品