我使用HttpURLConnection类发出http请求。我的代码看起来像这样:
conn = (HttpURLConnection)new URL(endPoint.trim()).openConnection();
conn.setConnectTimeout(rtbTimeOut); // 200 ms
conn.setReadTimeout(rtbTimeOut);
conn.setDoOutput(true);
conn.setRequestMethod(ApiConstants.REQUEST_POST_METHOD);
conn.setRequestProperty("Content-Type",ApiConstants.CONTENT_TYPE);
conn.setRequestProperty("x-openrtb-version", ApiConstants.RTB_REQUEST_HEADER);
os = conn.getOutputStream(); // **Here is code of line that my Thread state is BLOCKED**
os.write(input.getBytes());
os.flush();
当我在生产环境中调试此问题时,我找到了 线程转储中的错误 错误:" pool-424-thread-7" #4082 prio = 5 os_prio = 0 tid = 0x00007f8510144800 nid = 0x5828正在等待监视器输入[0x00007f848b7f5000] java.lang.Thread.State:BLOCKED(在对象监视器上 在上面的代码方法getOutputStream()行
我不知道为什么它会进入BLOCKING状态或任何其他实现来避免这种状态
非常感谢您的帮助。谢谢:)