我有一个 Java 程序,目前在高峰时间会冻结。我正在寻找原因。现在,我的想法是因为有些代码不是AJAX,所以在高峰时段从服务器请求JSON对象时它会挂在那里(高峰时段互联网速度很慢)。但我不太确定它不是 AJAX。我不能在这里粘贴所有代码,因为它与公司的财产有关,所以我要写一些代码/伪代码。该程序使用以下内容来执行请求。
URL url = new URL("http://www.xxxxxxxx.com/");
URLConnection conection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conection .getInputStream()));
String inputLine;
String content = "";
while ((inputLine = in.readLine()) != null) {
content += inputLine;
}
in.close();
json = new JSONObject(content);
上面的代码是程序的一些片段,我认为它会导致冻结。我的问题是,这段代码似乎没有使用任何 AJAX,也不是多线程,对吧?所以当互联网连接很慢时它会挂在那里(冻结)?我对此不是很有经验。请帮忙。
如果您认为这不是导致冻结的主要原因,那么一般来说,此类问题最可能的原因是什么。先感谢您。
编辑/更新:
我的程序是一个在客户端运行的摇摆程序。此应用程序没有真正的服务器端代码。URL 地址是提供程序需要的某种数据的第 3 方服务器。我没有看到该程序使用任何线程。正如我所见,它基本上是核心Java,没有使用任何线程,而且我对多线程不是很熟悉,所以我不确定。(程序不是我写的,是一些以前的程序员写的)这就是为什么我在考虑它可能没有使用其他线程来运行这个服务器请求。
我所说的冻结是指UI 在高峰时段尝试运行某些特定功能时会冻结几秒钟。我写的上面的代码是这些函数的一些片段。在 UI 冻结一段时间后,它会在其余部分按预期工作。然而,在非高峰时段,它就像一个魅力。
具体来说, BufferedReader in = new BufferedReader(new InputStreamReader(connection .getInputStream())); 是我认为导致问题的原因。有人可以证实吗?