問題タブ [interrupted-exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ThreadInterruptedの場合のプロセスの終了コードの抽出
exec()呼び出しを介してプロセスを作成したばかりで、現在は.waitFor()メソッドを使用しています。InterruptedExceptionをキャッチする必要がありますが、catchコードブロックに何を配置すべきかわかりません。終了コードを受け取りたいのですが、現在のスレッドが中断された場合は受け取りません。スレッドが中断された場合に終了コードをプロセスから除外するにはどうすればよいですか?
例:
java - ソケットの読み取り時の Java 割り込みスレッド
Java のソケットから読み取りたいスレッドでクライアントを実行しています。しかし、読んでいるうちに、スレッドを殺したいと思うかもしれません。だから私はinterrupt
それをしますが、ソケットの読み取りメソッドはスローしInterruptedException
ますか? 見つかりませんでした。
では、スレッドがソケットの読み取りをブロックしているときにスレッドを終了させるにはどうすればよいでしょうか?
ありがとう
c - epoll_waitはEINTRが原因で失敗しますが、これを修正するにはどうすればよいですか?
EINTRが原因でepoll_waitが失敗します。私のgdbトレースはこれを示しています:
この文字列「開始タイマーのepoll_waitエラー:測定は実行期間全体にわたって行われます」は、私がstderrに出力します。
epoll_waitが機能するように、このEINTRを修正する方法を理解できません。このEINTRがGDBトレースによってどのように生成されるかについて何か考えはありますか?
jasper-reports - Ireport 実行中の java.lang.InterruptedException
Java で jasper レポートを実行してレポートを生成し、バーチャライザーを使用して膨大なデータを処理していました。しかし、ほぼ 3 時間実行した後、突然 java.lang.InterruptedException がスローされました。それは私のプログラムによってキャッチされました。これがスタック トレースです。私が知っているのは、この例外は、他のプロセスがスリープ中またはアイドル状態のプロセスに割り込んだ場合にのみスローされるということです。私の場合、他のどのプロセスがこれを中断した可能性がありますか?
以下はコンソール出力です。
問題はジャスパーレポートにあると思いますが、正しいですか? これを私のプログラムで処理する方法はありますか?
どうもありがとう!
-ブレビス・イウニウス
java - InterruptedExceptionの管理
http://www.ibm.com/developerworks/java/library/j-jtp05236/index.htmlを読みました
私は自分のロックをキャンセルできないタスクにすることにしました
しかし、する必要があります
この記事では、割り込みステータスを保持するには、interrupt()を呼び出す必要があると述べています。まだ非常にぼやけているので、.interruptを設定するとどうなりますか?次は何が起こる?これで少し失われました..入力はありますか?
それは私のプログラムにどのような価値をもたらしますか?素人の言葉で親切に説明してください、大いに感謝します:D
java - Java でのループ スレッドの中断
Java でスレッドがどのように機能するかを理解しようとしており、現在、キャンセル可能なループ スレッドを実装する方法を調査しています。コードは次のとおりです。
私が作成したスレッドは、遅かれ早かれ中断される予定です。そのため、isInterrupted() フラグをチェックして、続行する必要があるかどうかを判断し、一種の待機操作 ( 、、 )InterruptedException
にある場合に処理するために catch も行います。sleep
join
wait
明確にしたいことは次のとおりです。
- この種のタスクに割り込みメカニズムを使用しても問題ありませんか? (持っているのに比べて
volatile boolean shouldStop
) - この解決策は正しいですか?
- InterruptedException を飲み込むのは正常ですか? 誰かが私のスレッドに割り込みを要求したコードが何であったか、私はあまり興味がありません。
- この問題を解決するためのより短い方法はありますか? (主なポイントは「無限」ループを持っていることです)
編集への
呼び出しをinterrupt()
in catch for に追加しましたInterruptedException
。
c# - 最終ブロックでスリープしているときにスレッドが中断されないのはなぜですか
私はMSDN全体を見てきましたが、最終ブロック内でスリープしているときにスレッドを中断できない理由を見つけることができません。中止を試みましたが成功しませんでした。
最終ブロック内でスリープしているときにスレッドを起こす方法はありますか?
驚くべきことに、MSDN は、最終ブロックでスレッド を中止できると主張しています: http://msdn.microsoft.com/en-us/library/aa332364(v=vs.71).aspxこの場合、finally ブロックは中止されます。」
編集 Hans Passant のコメントが最良の回答であることがわかりました。そして、それはプロセスがシャットダウンしているときです。ありがとう
java - Java アプリは、ソケットを開くとすぐに ClosedByInterruptException をスローします。原因は?
私は、おそらく一度に2,000の球場で、アドレスへの多くの接続を開いたままにしているJavaアプリを持っています。アクティビティはほとんどなく、時々数バイトを渡す監視目的でほとんど開いています。新しい接続を開く必要がある場合、自動的にそれらを開き、プールに追加します。ただし、理由は不明ですが、リモート アドレスへのソケットの作成中または作成直後に、アプリケーションが ClosedByInterruptException を受け取ることがあります。私の知る限り、これはスレッドへの割り込み信号の結果としてクライアント側でのみ発生します。問題のある領域を囲むソース コードを確認して再確認しましたが、問題ないようです。たとえば、ソースコード以外に別の原因があるかどうかについて、誰かの専門知識を得ることができればと思っていました。これを引き起こすシステム上の理由はありますか?ハードウェアの原因はありますか?サーバーレベル/ルーターレベル?私のネットワーク知識はアマチュアだと思いますが、ルーターには 2K 接続が多すぎますか?
更新:他の人が診断に貢献できるように、できる限りのことをしたいと思います. 例外が発生する実際の関数は次のとおりです。唯一の違いは、441 行目に追加した行マーキングです。
java - ファイルを開くダイアログをキャンセルした後のInterruptedException-1.6.0_26
次のコードからの出力は次のとおりです。
次のコードは、私のマシンの例外を示しています。
プログラムを実行すると、メインウィンドウが正常に開き、プログラムは正常に動作します。
ただし、次の場合:
- [ファイルを開く
JFileChooser
]ボタンを使用してを開きます - キャンセルを押してから
- プログラムを終了します
がInterruptedException
スローされます。または、ファイルを選択して「開く」とプログラムを終了すると、同じエラーがスローされます。このブログでは、同じことがサンプルコードで説明されています。彼の解決策は、new JFileChooser();
できるだけ早く呼び出すことですが、これは効果がありません。
これは1.6.0_26のバグですか?もしそうなら、そのバージョンの回避策はありますか?
それはコードですか?もしそうなら、それを修正する方法は?(他に2つのnull結果があり、そのうちの1つが削除されています。)
java - Java : コードから割り込み可能なメソッドを呼び出す
Java Concurrency in Practice の第 7 章を読んでいます。
独自のキャンセル ポリシーを持たないが、中断可能なメソッドを呼び出すメソッドについて説明しているセクションで、この本には次のように書かれています。
キャンセルをサポートしていないが、中断可能なブロッキング メソッドを呼び出すアクティビティは、ループ内で呼び出し、中断が検出されたときに再試行する必要があります。この場合、中断ステータスをローカルに保存し、キャッチ直後ではなく、戻る直前に復元する必要があります。中断された例外。
私はこれを完全には理解していません。
メソッドを呼び出すThread.sleep
と、ループなどで呼び出す必要があるということですか?
なぜそうすべきなのか誰か説明できますか?