阿韬 2017-01-18 14:52 采纳率: 0%
浏览 2329
已结题

Java编程的多线程,如何实现更好一些?

写了一个网络爬虫程序,每隔10分钟,启动一次爬虫执行。

爬虫程序中,使用了多线程:爬虫程序使用10个线程的多线程,爬取一个指定页面的一些页面数据。 由于每隔10分钟,启动一次爬虫程序,因此,这10个线程就会每10分钟重新生成一次,每天从早晨8:00左右开始,运行了19:30左右时,便就会出现Memroy Overflow的再现。咨询一下大侠,出现如下的错误,有什么好的解决办法?

Exception in thread "Thread-690" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.(Unknown Source)
at org.apache.http.util.CharArrayBuffer.toString(CharArrayBuffer.java:461)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:236)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:257)
at com.cn.Spilder0721.DownloadBidEntity.getBidEntityFormUrl(DownloadBidEntity.java:102)
at com.cn.Spilder0721.BidDataHanding.dataHanding(BidDataHanding.java:23)
at com.cn.Spilder0721.BidDataHanding.run(BidDataHanding.java:33)

  • 写回答

10条回答 默认 最新

  • 海之沐 2017-01-18 15:19
    关注

    考虑用线程池,或者你要杀掉那些线程,而不是一直在生成线程。

    评论

报告相同问题?