vinegardou 2012-01-06 11:00 采纳率: 0%
浏览 204
已采纳

这个线程怎么返回数据?

action:
public String dWeather() {
WeatherThreadTask weatherThreadTask=new WeatherThreadTask(ip);
weatherThreadPool.execute(weatherThreadTask);
System.err.println(weatherThreadTask.getWeatherInfo());
return "dwea";
}

线程类:
class WeatherThreadTask implements Runnable,Serializable{

private static final long serialVersionUID = 1L;

protected String ip;

private WeatherInfo weatherInfo;

public WeatherInfo getWeatherInfo() {
    return weatherInfo;
}

public void setWeatherInfo(WeatherInfo weatherInfo) {
    this.weatherInfo = weatherInfo;
}

public WeatherThreadTask(String ip){
    this.ip=ip;
}

public void run() {
    try{
        IWeatherPlugin plugin=PluginManager.getWeatherPlugin();
        WeatherInfo weatherinfo=plugin.getToday(ip);
        setWeatherInfo(weatherinfo);
    }catch(Exception e){
        e.printStackTrace();
    }
}

}

我想在action获取weatherinfo数据?
怎么做?

  • 写回答

2条回答 默认 最新

  • kingj126 2012-01-06 13:20
    关注

    1、将WeatherThreadTask 实现Callable接口
    class WeatherThreadTask implements Callable,Serializable{

    private static final long serialVersionUID = 1L; 
    
    protected String ip; 
    private WeatherInfo weatherInfo; 
    
    public WeatherInfo getWeatherInfo() { 
    return weatherInfo; 
    } 
    
    public void setWeatherInfo(WeatherInfo weatherInfo) { 
    this.weatherInfo = weatherInfo; 
    } 
    
    
    public WeatherThreadTask(String ip){ 
    this.ip=ip; 
    } 
    
    public Object call() throws Exception {
        WeatherInfo weatherinfo=null;
        try{ 
            IWeatherPlugin plugin=PluginManager.getWeatherPlugin(); 
            =plugin.getToday(ip); 
            setWeatherInfo(weatherinfo); 
            }catch(Exception e){ 
            e.printStackTrace(); 
            } 
        return weatherinfo;
    } 
    

    }

    2、main方法调用
    public static void main(String[] args) {
    WeatherThreadTask wt=new WeatherThreadTask("");
    ExecutorService es=Executors.newCachedThreadPool();
    Future future=es.submit(wt);
    WeatherInfo info=future.get();
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘