5-3作业

来源:5-1 线程间通信

TomRidder716

2017-11-25 21:39:57

package com.imooc.Weather;


import java.util.Random;


public class Weather {

private int tem;

private int hum;

private boolean flag=false;

Random random=new Random();

int tem1=random.nextInt(41);

int hum1=random.nextInt(101);

public int getTem() {

return tem;

}

public void setTem(int tem) {

this.tem = tem;

}

public int getHum() {

return hum;

}

public void setHum(int hum) {

this.hum = hum;

}

public void generate()

{


System.out.println("生成天气数据[温度:" +tem1+"湿度"+

hum1+"]");

}


public void read()

{

System.out.println("生成天气数据[温度:" +tem1+"湿度"+

hum1+"]");

}

}

package com.imooc.Weather;


import com.imooc.queue.Queue;


public class GenerateWeather implements Runnable {


Weather weather;

public GenerateWeather(Weather weather)

{

this.weather=weather;

}

public void run()

{

int i=1;

while(i<=60)

{

weather.generate();

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

package com.imooc.Weather;


public class ReadWeather implements Runnable {

Weather weather;

public ReadWeather(Weather weather)

{

this.weather=weather;

}

public void run()

{

int i=1;

while(i<=60)

{

weather.read();

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


}

package com.imooc.Weather;


import com.imooc.queue.Queue;


public class WeatherTest {


public static void main(String[] args) {

Weather weather=new Weather();

new Thread(new GenerateWeather(weather)).start();

new Thread(new ReadWeather(weather)).start();


}


}

目前代码如下,但是实现不了需求,要怎么改呢,谢谢~

写回答

1回答

好帮手慕雪

2017-11-26

1)你应该在generate()中把tem1和hum1调用set方法设置给tem和 hum;。在read()中调用get方法获取tem和 hum; 2)为generate()和read()增加锁。3)设置一个flag,当flag为真的时候可以调用set方法设置给tem和 hum,输出内容后唤醒其它等待的资源,当flag为假的时候进行等待。4)当flag为假的时候可以调用get方法设置给tem和 hum,输出内容后唤醒其它等待的资源,当flag为真的时候进行等待。祝:学习愉快

0

0 学习 · 7235 问题

查看课程

相似问题

线程作业5-3

回答 2

作业5-3

回答 1

5-3作业

回答 1

5-3作业问题

回答 1

5-3作业问题

回答 1