我最近开始在我的新多核机器上运行我的java程序。我突然看到一个从未发生过的旧单核Pentium问题。我怀疑这个问题与我的程序和我在同一时间运行的各种浏览器之间的某种争用有关。当进程进入这种状态时,没有任何数量的进程被杀死似乎有帮助(总是有一些残留的firefox或chrome进程),所以我最终重新启动机器。我的程序主要使用以下几行来打开和阅读大量网址:锁定在多核机器上的进程
URL url = new URL(urlString);
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
........
while ((inputLine = in.readLine()) != null) {...}
每隔一段时间我的程序尝试点击的URL都不存在。在这些情况下,创建BufferedReader的调用最终会超时。我将修改程序以使用更短的时间,但我怀疑这本身并不能解决问题。
任何建议,将不胜感激。
您为什么认为您的Java应用程序与您的浏览器交互?你正在编写一个Applet或一个Servlet吗? –
你说什么没有多大意义。毕竟,JVM运行在与浏览器不同的独立进程中。 –
都是(新旧)连接到同一个网络?由于InputStream的read()方法阻塞,直到数据可用,因此“锁定”可能由网络连接中断造成。 – Robert