5-3自由编程

5-3自由编程

public class Weather {
    //成员属性
    private int temperature;//温度
    private int humidity;//湿度
    boolean flag=false;
     
    public int getTemperature() {
        return temperature;
    }
    public void setTemperature(int temperature) {
        this.temperature = temperature;
    }
    public int getHumidity() {
        return humidity;
    }
    public void setHumidity(int humidity) {
        this.humidity = humidity;
    }
     
    //生成天气数据的方法
    public synchronized void generate() {
        if(flag) {
            try {
                wait();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        temperature = (int)(Math.random()*40);
        setTemperature(temperature);
        humidity = (int)(Math.random()*100);
        setHumidity(humidity);
        System.out.println("生成天气数据"+this);
        flag = true;
        notifyAll();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    //读取天气数据的方法
    public synchronized void read() {
        if(!flag) {
            try {
                wait();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        System.out.println("读取天气数据"+this);
        flag = false;
        notifyAll();
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    @Override
    public String toString() {
        return "[温度:" + temperature + ", 湿度:" + humidity + "]";
    }
}
我看到别人写的时候把sleep()写在实现类GenerateWeather和中,我能否写在Weather里,哪种写法更好?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕酷酷 2019-08-07 17:56:02

同学你好,两种方式都是可以的,但是sleep()更建议写在实现类GenerateWeather中,因为根据题目要求,设计一个线程类GenerateWeather,我们需要为每次生成天气数据5秒的时间,每次读取数据需要0.1秒的时间,更加符合题目要求哦~

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师