Javaスレッド割り込みタイムアウト例外(ThreadInterruptedTimeoutExceotion)の解決方法
Java スレッド割り込みタイムアウト例外 (ThreadInterruptedTimeoutException) の解決方法
Java マルチスレッド プログラミングでは、スレッドの実行時間が長すぎる状況がよく発生します。スレッドがシステム リソースを占有しすぎないように、通常はタイムアウトを設定し、スレッドの実行時間がタイムアウトを超えた場合にスレッドの実行を中断できるようにします。
Java にはスレッド割り込みメカニズムが用意されており、スレッドの中断() メソッドを呼び出すことで、スレッドに割り込み信号を送信できます。スレッドのinterrupt()メソッドを呼び出すとき、スレッドの実行をすぐに中断するのではなく、スレッドに割り込み要求を発行し、スレッドの割り込みフラグビットをtrueに設定します。実行中、スレッドは自身の割り込みフラグ ビットをチェックすることで割り込みされたかどうかを判断し、必要に応じて実行を終了できます。
マルチスレッド プログラミングでは、タイムアウト期間内に操作の結果を待機し、タイムアウト期間が到来したときにスレッドの実行を中断できるようにしたい場合があります。一般的な例は、ネットワーク リクエストのタイムアウトの処理です。この問題は次の方法で解決できます。
まず、待機する必要がある操作を実行するためのスレッド クラスを作成する必要があります。このスレッド クラスでは、スレッドの sleep() メソッドを使用して、待機する必要がある操作をシミュレートする必要があります。
public class MyThread implements Runnable { @Override public void run() { try { // 模拟需要等待的操作 Thread.sleep(5000); } catch (InterruptedException e) { // 线程被中断,做一些清理工作 System.out.println("线程被中断"); } } }
次に、メイン スレッドを作成してスレッドを開始し、タイムアウトを設定します。
public class Main { public static void main(String[] args) { MyThread myThread = new MyThread(); Thread thread = new Thread(myThread); // 设置超时时间 int timeout = 3000; // 启动线程 thread.start(); try { // 等待线程执行完毕或超时 thread.join(timeout); // 如果线程未执行完毕,则中断线程 if (thread.isAlive()) { thread.interrupt(); } } catch (InterruptedException e) { e.printStackTrace(); } } }
上記のコードでは、Thread クラスの join() メソッドを使用して、スレッドの実行が完了するかタイムアウトになるまで待機します。スレッドが実行を完了すると、join() メソッドはすぐに戻ります。タイムアウト期間を超えても join() メソッドが戻らない場合は、スレッドの実行がタイムアウトしたと考えて、スレッドの実行を呼び出すことでスレッドの実行を中断できます。中断()メソッド。
上記のコードでは、スレッドの run() メソッドで sleep() メソッドを使用して待機操作をシミュレートし、より長い待機時間 (5000 ミリ秒) を設定します。メインスレッドでは、短いタイムアウト (3000 ミリ秒) を設定します。このようにして、スレッドの実行が 3 秒を超えると、スレッドの実行が中断されます。
上記のコードにより、Java マルチスレッド プログラミングにおけるスレッド割り込みタイムアウトの問題を解決できます。特定のニーズに応じてさまざまなタイムアウトを設定し、このメソッドを使用してスレッド実行タイムアウトを処理できます。同時に、スレッドの run() メソッドでスレッドの中断を適切に処理し、プログラムが正しく動作するようにクリーンアップ作業を行う必要もあります。
以上がJavaスレッド割り込みタイムアウト例外(ThreadInterruptedTimeoutExceotion)の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
