`

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

阅读更多
   今天上午更新数据的时候,发现获取的数据和实际数据源有很大的差别。这里简单描述下项目背景:做的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软件开发的流程,注意点,及优化。...

    java项目总结报告.pdf

    本资源是一个非常详细和实用的 Java 项目总结报告,涵盖了项目管理、Java 语言、数据库设计、需求分析、表单设计、数据校验、分页和批量删除、团队合作、问题解决等方面的内容,对于 Java 项目开发和软件工程有很大...

    Linux下使用tomcat发布Web项目

    Tomcat 是一个开源的 Web 服务器软件,广泛应用于 Java Web 开发中。在 Linux 系统下,Tomcat 可以轻松地安装和配置,以便发布 Web 项目。 Linux 系统的特点 Linux 是一个免费、开源的操作系统,具有多线程、多...

    Linux内核的栈使用,问题的定位

    例如,在一个项目中,笔者遇到过一个死循环的问题,使用 sysrq 的内核线程栈回溯功能终于找到死循环的函数。在另一个项目中,应用程序发生了 double free,运用内核的栈回溯功能,找到应用代码哪里发生了 double ...

    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操作、鼠标和键盘相关、注册表、线程和...

Global site tag (gtag.js) - Google Analytics