uzons 2015-03-21 15:49 采纳率: 0%
浏览 6891

线程一直处于RUNNABLE,也没有发现阻塞或是死锁的情况?

我写的是一个频繁访问网络的爬虫,启了20个线程;
但是老实跑了一段时间,线程全部处于RUNNABLE状态了;
网络使用的是httpclient3.1;
我把threaddump给放到下面:

 "Thread-19" #30 prio=5 os_prio=0 tid=0x0000000059b3d000 nid=0xcb4 runnable [0x000000005ba1e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x0000000086f05c90> (a java.io.BufferedInputStream)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at com.uzons.domain.search.v2.searcher.EBChecker.validate(EBChecker.java:34)
    at com.uzons.domain.search.v2.taskscheduler.DomainJob.exec(DomainJob.java:28)
    at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:110)
    at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.run(DomainScheduler.java:92)

   Locked ownable synchronizers:
    - None

  • 写回答

4条回答 默认 最新

  • uzons 2015-03-21 15:51
    关注

    所有线程都是这样的卡住不懂了。

     "Thread-18" #29 prio=5 os_prio=0 tid=0x0000000059b3c800 nid=0x1818 runnable [0x000000005b8de000]
       java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
        - locked <0x00000000876a56b8> (a java.io.BufferedInputStream)
        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
        at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
        at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at com.uzons.domain.search.v2.searcher.EBChecker.validate(EBChecker.java:34)
        at com.uzons.domain.search.v2.taskscheduler.DomainJob.exec(DomainJob.java:28)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:110)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:120)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:120)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.run(DomainScheduler.java:92)
    
       Locked ownable synchronizers:
        - None
    
    "Thread-17" #28 prio=5 os_prio=0 tid=0x0000000059b3b800 nid=0x19b4 runnable [0x000000005b6fe000]
       java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
        - locked <0x00000000876a6278> (a java.io.BufferedInputStream)
        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
        at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
        at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at com.uzons.domain.search.v2.searcher.EBChecker.validate(EBChecker.java:34)
        at com.uzons.domain.search.v2.taskscheduler.DomainJob.exec(DomainJob.java:28)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:110)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:120)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.run(DomainScheduler.java:92)
    
       Locked ownable synchronizers:
        - None
    
    "Thread-16" #27 prio=5 os_prio=0 tid=0x0000000059b3b000 nid=0x880 runnable [0x000000005b43e000]
       java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
        - locked <0x0000000086c33778> (a java.io.BufferedInputStream)
        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
        at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
        at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
        at com.uzons.domain.search.v2.searcher.ZZIDCChecker.validate(ZZIDCChecker.java:27)
        at com.uzons.domain.search.v2.taskscheduler.DomainJob.exec(DomainJob.java:28)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:110)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.execute(DomainScheduler.java:120)
        at com.uzons.domain.search.v2.taskscheduler.DomainScheduler.run(DomainScheduler.java:92)
    
       Locked ownable synchronizers:
        - None
    
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?