スレッド仮死プロジェクト成果のない長時間のインターフェイス

いくつかのプロジェクトでは、多くの場合、それに対処するためにどのようにこの時間、応答しない理由もなく呼び出しますか?

ここでは解決策を提案しています。

これは、スレッドコントロールを使用して行われます。

輸入java.util.concurrent.Callable;
輸入java.util.concurrent.ExecutorService;
輸入java.util.concurrent.Executors。
輸入java.util.concurrent.Future;
輸入java.util.concurrent.TimeUnit。

パブリック クラスのテスト{ 
    
    プライベート 静的 ExecutorServiceのEXEC = Executors.newFixedThreadPool(1 )。
    公共の 静的な 無効メイン(String []型agst){
         試み{
             // Callabal <文字列>文字列:是返回值类型 
            呼び出し可能<文字列>呼び出し可能= 新しい呼び出し可能<文字列> (){
                公共の文字列()の呼び出しはスロー例外{ 
                    のThread.sleep( 2010 );
                     // 方法のニーズが呼び出すかするインターフェース
                     // 値の戻り値を直接返すインタフェース戻るなら
                    リターンを「成功」; 
                } 
            }; 
            未来の<string> =送信Execの。 (呼び出し可能)を提出;
             // インターフェイスの結果の戻り値は、取得(2 "時間"、TimeUnit.SECONDS "タイムタイプ") 
            文字列submit.get結果=(2 、TimeUnit.SECONDS);
             // 独自のロジック 
        } キャッチ( E例外){ 
    } 
            System.out.printlnは(E)。
        } 
}

その後、テストを行う際に、使用中のテストを使用していないコードを変更します。

 

おすすめ

転載: www.cnblogs.com/brent-leon/p/11975369.html