私は最近、私の新しいマルチコアマシン上で私のJavaプログラムの実行を開始しました。私は突然、私の古いシングルコアのPentiumでは決して起こらなかった問題を見ています。私の問題は、自分のプログラムと、同時に実行しているさまざまなブラウザとの何らかの競合に関係していると思われます。プロセスがこの状態になると、プロセスの殺害は助けになりません(残っているFirefoxやChromeプロセスが残っています)ので、マシンが再起動します。そう頻繁に私のプログラムが存在しないヒットしようとするURLマルチコアマシン上でロックするプロセス
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アプリケーションがあなたのブラウザとやりとりすると思いますか?あなたはアプレットやサーブレットを書いていますか? –
あなたが言うことはあまり意味がありません。結局のところ、JVMはブラウザとは別のプロセスで動作します。 –
古いネットワークと新ネットワークの両方が同じネットワークに接続されていますか? 「ロック」は、データが使用可能になるまで、InputStreamブロックのread()メソッドとしてストールしているネットワーク接続によって引き起こされる可能性があるためです。 – Robert