問題タブ [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.

0 投票する
2 に答える
2580 参照

java - Callable で割り込みビットを設定する理由

そのため、このリソース ( http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html ) は、スレッドが割り込み自体を処理しない場合にスレッドに割り込みビットを設定することを提案しています。コール スタックの上位にあるコードが割り込みを認識し、必要に応じて応答できるようにします。」

別のスレッドで何かを実行するために ExecutorService を使用しているとしましょう。Callable を作成し、この Callable を ExecutorService.submit() に渡します。ExecutorService.submit() は Future を返します。Callable が中断されてから割り込みビットをリセットした場合、関連する Future は、Future.get() が呼び出されたときに InterruptedException をスローしません。したがって、メイン スレッドが生成されたスレッドにアクセスできる唯一の方法がこの Future である場合、Callable で中断されたビットを設定する目的は何でしょうか。

0 投票する
1 に答える
1407 参照

java - スリープ状態のスレッドで interrupt() を呼び出すとどうなりますか?

私はスレッドを持っていて、私はrun()を呼び出しますsleep()。このスレッドを中断するとどうなりますか?

私は次のことを明確にしたい:

  • スレッドがまだ開始されていない場合、呼び出しinterrupt()ても何も起こりませんよね?
  • スレッドが開始され、現在スリープ状態にある場合、スリープ中に呼び出すと;interrupt()がスローされます。InterruptedExceptionしたがって、catch()スレッドに移動して終了しますよね?
0 投票する
3 に答える
2865 参照

java - Thread.sleep()はメインUIスレッドをブロックします

私はこのスレッドを持っています:

そして、スレッドを開始しました。ただし、スレッドがメインUIスレッドをブロックしているため、ユーザーの操作に応答しません。

0 投票する
0 に答える
52 参照

java - 静的解析による誤って処理された InterruptedExceptions の特定

InterruptedException が正しく処理されていない場合 (たとえば、findbugs やおそらく checkstyle などの静的解析を介して) を識別する方法はありますか (たとえば、スレッドを中断済みとしてマークするか、例外をスローするか、オプションで: 理由を説明するコメントを付けます。後者のオプション無視できる?)

0 投票する
4 に答える
2810 参照

java - なぜ InterruptedException はチェック例外なのですか?

これは、独自のスレッドを作成していたときの古い Java に関する質問です。別のスレッドによって中断されたときにThread.sleep(100)スローするようないくつかのメソッド。InterruptedException私が理解しているように、中断とは、別のスレッドが言っていることを意味します。

これが起こったとき、なぜ Java は私たちに対処することを望んでいるのInterruptedExceptionでしょうか?

プログラマーは、スレッドがいつ相互に割り込んでいるかを気にする必要さえありません。彼は作業をスレッド間で分割し、それが完了したときに通知を受けることができるはずです。では、Java が私たちに対処を求めている理由は何InteruptedExceptionでしょうか? 少なくともそうあるべきだRuntimeException

0 投票する
3 に答える
245 参照

java - 割り込みメソッドの使用

ステップ 7 (マークしたとおり) で、メイン スレッドは thread を呼び出しますinterrupt()t2、リソースのロックを取得するのを待っていたため、例外はスローされません。その後、メインスレッドはEnd Main1000 ns 待ってから " " を出力します。つまり、メイン スレッドがタスクを完了したt2.interrupt()後、例外がスローされるため、何が再びトリガーされるのでしょうか。

0 投票する
1 に答える
1180 参照

java - InterruptedException を飲み込んではいけない理由

私は非常に混乱しており、InterruptedException を飲み込んではいけない理由を理解できません。

IBMの記事によると

ブロッキング メソッドが割り込みを検出して InterruptedException をスローすると、割り込み状態がクリアされます。InterruptedException をキャッチしても再スローできない場合は、割り込みが発生したという証拠を保持して、コール スタックの上位にあるコードが割り込みを認識し、必要に応じて応答できるようにする必要があります。

また、Java Concurrency in Practice では、第 7.1.3 章: 割り込みへの対応でこれについて詳しく説明しています。そのルールは次のとおりです。

スレッドの割り込みポリシーを実装するコードのみが、割り込み要求を飲み込むことができます。汎用タスクおよびライブラリ コードは、割り込み要求を飲み込むべきではありません。

1.より高いコールスタックのコードで Thread.currentThread().interrupt(); によって設定されたステータスを利用する方法を誰でも説明できますか? スレッドが終了したときの catch ブロックで?

また、上記のルールについて説明してください。