用java做了一个多线程程序,用来读取1000个网页的某段数据,为了缩短时间,使用了20个线程同时进行,但是有时会出现查找的结果不完全的情况,比如说只找到600多个结果,其他的结果丢失,各位能告诉我是什么原因导致,如何解决吗?

解决方案 »

  1.   

    把所有线程取到的内容都存成文件看。
    说不定有时候server端给你的响应不是你想要的。
      

  2.   

    回复人:xiaomad() ( 二级(初级)) 信誉:100
    把所有线程取到的内容都存成文件看。
    说不定有时候server端给你的响应不是你想要的。应该存成文件的形式比较好
      

  3.   

    原因的话,我想最可能是网络traffic,想象我们有的时候用浏览器浏览网页也会发生只取到一半就断了的现象。
    而且你同时用20个线程在进行网络通讯。
    对策的话,最简单有效的就是Retry了。
    取不到你想要的结果,就再做一遍。
      

  4.   

    最好将所有的异常都打印出来,支持xiaomad() ( ) 的说法,捕获异常,然后retry