//weather类
package com.Imooc.thread.test3;
public class Weather {
private int temperature;
private int humidity;
boolean flag=false;
public Weather() {
// TODO Auto-generated constructor stub
}
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(int temperature,int humidity) {
if(flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
this.setTemperature(temperature);
this.setHumidity(humidity);
flag=true;
notifyAll();
}
}
public synchronized void read() {
if(!flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
this.getTemperature();
this.getHumidity();
flag=false;
notifyAll();
}
}
}//GenerateWeather类
package com.Imooc.thread.test3;
public class GenerateWeather implements Runnable {
Weather weather;
public GenerateWeather() {
this.weather=new Weather();
}
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<100;i++) {
weather.generate(18, 22);
System.out.println("生成天气!");
}
}
}
//ReadWeather类
package com.Imooc.thread.test3;
public class ReadWeather implements Runnable {
Weather weather;
public ReadWeather() {
this.weather=new Weather();
}
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<100;i++) {
weather.read();
System.out.println("读取天气!");
}
}
}
//测试类
package com.Imooc.thread.test3;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ReadWeather re=new ReadWeather();
GenerateWeather ge=new GenerateWeather();
Thread thread2=new Thread(re);
Thread thread1=new Thread(ge);
thread1.start();
thread2.start();
}
}
添加回答
举报
0/150
提交
取消