项目开发中碰到的一个线程问题(一)

   今天上午更新数据的时候,发现获取的数据和实际数据源有很大的差别。这里简单描述下项目背景:做的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对象在多线程的环境下是线程非安全的,在该对象调用中可能会出现参数及返回值数据的异常。
   没有实际代码,说得有些乱哈。等明天好好整理下代码,再详细讲下。

猜你喜欢

转载自alanlg.iteye.com/blog/1694758