为了账号安全,请及时绑定邮箱和手机立即绑定

初学线程,想问为啥第二个read线程运行不了?

初学线程,想问为啥第二个read线程运行不了?

慕婉清7489420 2018-03-10 18:24:56
//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(); } }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 798 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信