今天上午更新数据的时候,
发现获取的数据和实际数据源有很大的差别。这里简单描述下项目背景:做的android项目,需要从web服务器上定时获取a,b,c,d,e....的每天的实时数据,然后在Android端做些处理进行UI显示,这里因为种类比较多,而且考虑到时效性,采用了
异步线程池
Executors.newFixedThreadPool(10)
。
在定位中通过对数据的比对,在
服务端a,b,c,d,e有重复的相同日期的请求,个人觉得是不是客户端发起Http请求是不是参数混了,然后查看Http调用代码,发现HttpClient对象是
全局对象,在每个独立的线程对HttpClient的调用
executorService.submit(new Runnable()
{
@Override
public void run()
{
myHttp.sendGet(type,date);
}
});
这里可
理解为HttpClient对象在多线程的环境下是线程非安全的,在该对象调用中可能会出现参数及返回值数据的
异常。
没有实际代码,说得有些乱哈。等明天好好整理下代码,再详细讲下。