`
alanlg
  • 浏览: 9628 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多
   今天上午更新数据的时候,发现获取的数据和实际数据源有很大的差别。这里简单描述下项目背景:做的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对象在多线程的环境下是线程非安全的,在该对象调用中可能会出现参数及返回值数据的异常。
   没有实际代码,说得有些乱哈。等明天好好整理下代码,再详细讲下。
2
7
分享到:
评论
4 楼 alanlg 2012-10-16  
wangzhangxing 写道
PoolingClientConnectionManager cm = new PoolingClientConnectionManager();
cm.setMaxTotal(100);
然后new DefaultHttpClient(cm));
这样出来的client就是线程安全的了

代码也是这么写的,是由于我把HttpClient的变量范围搞错了。
还是要谢谢的你的建议
3 楼 小树鹿鸣 2012-10-12  
    <bean id="crawlHttpClient" class="com.funo.crawl.util.ClientMultiThreadedExecution" destroy-method="destroy">
    <property name="connectionTimeout" value="30000" />
    <property name="readTimeout" value="30000" />
    <property name="threadMaxTotal" value="100" /><!-- 最大线程数 -->
    <property name="maxPerRoute" value="400" /><!-- 每个路由最大连接数 -->
    <property name="requestSentRetryEnabled" value="true" />
    <property name="retryCount" value="0" /><!-- 失败重复次数 -->
    </bean>
2 楼 wangzhangxing 2012-10-12  
PoolingClientConnectionManager cm = new PoolingClientConnectionManager();
cm.setMaxTotal(100);
然后new DefaultHttpClient(cm));
这样出来的client就是线程安全的了
1 楼 endual 2012-10-11  
并发包下的类吧,没这样的实战

相关推荐

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

    NULL 博文链接:https://alanlg.iteye.com/blog/1697445

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而...

    java开发常见问题

    java开发工作两年遇到的技术问题以及查找到的解决方案还有一些积累,涉及前端技术,android开发,java后台以及数据库sql优化,session共享,单点登录,kafka入门,websocket,线程安全等。

    Android实战开发租赁管理软件(适配UI,数据的存储,多线程下载)

    在开发中,大家讲学习到基本的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发中碰到的有用的知识点。通过课程学习,让大家能够掌握Android软件开发的流程,注意点,及优化。...

    Android项目高手过招 FAQ.rar

    《Android项目高手过招FAQ》是一本专为Android开发者打造的实用指南,旨在解决他们在开发过程中遇到的各种常见问题。本书汇集了大量实战经验和技巧,以Q&A的形式呈现,方便读者快速查找和解决问题。 本书涵盖了...

    Visual C++开发实例大全 提高卷.part5

    《Visual C 开发实例大全(提高卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual C 进行程序开发各个方面的知识和技巧,主要包括Windows操作、鼠标和键盘相关、注册表、线程和...

    Visual C++开发实例大全 提高卷.part2

    《Visual C 开发实例大全(提高卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual C 进行程序开发各个方面的知识和技巧,主要包括Windows操作、鼠标和键盘相关、注册表、线程和...

    基于QT和C++开发的仿win10的任务管理器项目源码+项目说明(操作系统课设).zip

    无论您是运行还是二次开发,部署过程若遇到问题,请及时私信交流,欢迎学习。 基于QT和C++开发的仿win10的任务管理器项目源码+项目说明(操作系统课设).zip 功能模块 ![功能模块](img/module.png) * 仿照Windows10...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    java即时通讯项目

    使用JavaSE实现即时通讯项目,适合有一定的Java基础的用户编写,主要用到多线程...代码部分我添加了大量的注册,并且加了一些我在开发的过程中遇到的问题,都用特殊标记标注出来了,以此来警告自己下次不犯类似的错误。

    [你必须知道的222个C++语言问题].范立锋.扫描版[ED2000.COM]-第四部分

    本书精选了222个在C++程序设计中经常遇到的问题和典型功能,覆盖了实际开发中的各种需求,目的是帮助读者解决在C++学习和开发中经常遇到的实际问题,同时提高学习和开发的效率。本书涵盖了C++与C语言的区别和联系、...

    [你必须知道的222个C++语言问题].范立锋.扫描版[ED2000.COM]-第三部分

    本书精选了222个在C++程序设计中经常遇到的问题和典型功能,覆盖了实际开发中的各种需求,目的是帮助读者解决在C++学习和开发中经常遇到的实际问题,同时提高学习和开发的效率。本书涵盖了C++与C语言的区别和联系、...

    Visual C++开发实例大全 提高卷.part1

    《Visual C 开发实例大全(提高卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual C 进行程序开发各个方面的知识和技巧,主要包括Windows操作、鼠标和键盘相关、注册表、线程和...

    Visual C++开发实例大全 提高卷.part4

    《Visual C 开发实例大全(提高卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual C 进行程序开发各个方面的知识和技巧,主要包括Windows操作、鼠标和键盘相关、注册表、线程和...

    Visual C++开发实例大全 提高卷.part3

    《Visual C 开发实例大全(提高卷)》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual C 进行程序开发各个方面的知识和技巧,主要包括Windows操作、鼠标和键盘相关、注册表、线程和...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    Android项目面试题.rar

    1. 内容丰富:本面试题集包含了大量关于Android项目的问题,涵盖了UI设计、数据存储、网络编程、多线程处理等多个方面,既有基础知识也有实战技巧。 2. 结构清晰:所有问题按照不同的知识点进行分类整理,方便求职者...

Global site tag (gtag.js) - Google Analytics