1. 解決策
(1) Java スレッドを使用する場合、wait メソッドを使用することが多く、wait メソッドの呼び出し時に中断されると、jvm がキャプチャします。割り込みを解除し、待機命令の呼び出しを続行します。
(2) このとき割り込み送信方法を使用しても効果はありません。
(3) wait メソッドはカプセル化され、例外をキャッチして、例外の実行を停止する必要があります。
2.例
public static void wait(Object obj) { boolean interrupted = true; while (interrupted) { interrupted = false; try { obj.wait(); } catch (InterruptedException e) { interrupted = true; } } } public static void wait(Object obj, int timeout) { boolean interrupted = true; long startTime = System.currentTimeMillis(); int sleepTimeout = timeout; while (interrupted) { interrupted = false; try { obj.wait(sleepTimeout); } catch (InterruptedException e) { interrupted = true; long now = System.currentTimeMillis(); sleepTimeout -= now - startTime; startTime = now; if (sleepTimeout < 0) { interrupted = false; } } } }
以上がJavaで待機通話の中断を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。