当前页面: 开发资料首页 → J2SE 专题 → java 多线程问题,急!
java 多线程问题,急!
摘要: java 多线程问题,急!
用java做了一个多线程程序,用来读取1000个网页的某段数据,为了缩短时间,使用了20个线程同时进行,但是有时会出现查找的结果不完全的情况,比如说只找到600多个结果,其他的结果丢失,各位能告诉我是什么原因导致,如何解决吗?
丢失是有原因的,楼下补充
程序问题, 多半异常处理够完整, 除了分析/调试程序外, 别无他法.
那就要看你这么多线程各自读到的数据是怎么汇总的,会不会在汇总的时候出问题了
把所有线程取到的内容都存成文件看。
说不定有时候server端给你的响应不是你想要的。
应该不是汇总问题,我试过每个结果都打印出来,的确是有的线程查的结果不完全
回复人:xiaomad() ( 二级(初级)) 信誉:100
把所有线程取到的内容都存成文件看。
说不定有时候server端给你的响应不是你想要的。
应该存成文件的形式比较好
看看有没有重复取记录?
还有其他的原因解释吗?非常感谢!
原因的话,我想最可能是网络traffic,想象我们有的时候用浏览器浏览网页也会发生只取到一半就断了的现象。
而且你同时用20个线程在进行网络通讯。
对策的话,最简单有效的就是Retry了。
取不到你想要的结果,就再做一遍。
最好将所有的异常都打印出来,支持xiaomad() ( ) 的说法,捕获异常,然后retry
可能有资源方面的冲突吧