gpt4 book ai didi

java - HttpURLConnection 被锁定

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:30 26 4
gpt4 key购买 nike

我有一个在 tomcat 下运行的线程,它创建一个 HttpUrlConnection 并通过 BufferedInputStream 读取它。

在为某些 url 获取数据后,它停止了。我得到了进程的 jstack,它说 HttpUrlConnection 被锁定并且 BufferedInputStream 也被锁定。

"http-8080-1" daemon prio=10 tid=0x08683400 nid=0x79c9 runnable [0x8f618000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
- locked <0x956ef8c0> (a java.io.BufferedInputStream)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
- locked <0x956ef910> (a sun.net.www.protocol.http.HttpURLConnection)

有人可以帮忙吗?谢谢

最佳答案

您的另一端可能有问题。 InputStream 上的 read() 是阻塞操作 - 来自 javadoc ( http://java.sun.com/javase/6/docs/api/ ):“此方法阻塞直到输入数据可用、检测到流的末尾或抛出异常。”

另一端的服务器是否有响应?你知道它是否发送了什么吗?

编辑:为了更清楚地说明,线程处于 RUNNABLE 状态,因此您没有死锁 - 听起来这就是您的想法,但这里没有任何死锁的证据。

关于java - HttpURLConnection 被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com