Java鎬庝箞瀹炵幇浠诲姟瓒呮椂澶勭悊
Java鍙互閫氳繃浣跨敤绾跨▼鏉ュ疄鐜颁换鍔¤秴鏃跺鐞嗐€備互涓嬫槸涓€涓畝鍗曠殑渚嬪瓙锛?/p>
import java.util.concurrent.*;
public class TimeoutExample {
public static void main(String[] args) {
ExecutorService executor = Executors.newSingleThreadExecutor();
// 鍒涘缓涓€涓狢allable浠诲姟
Callable<String> task = () -> {
// 妯℃嫙涓€涓€楁椂鐨勬搷浣?/span>
Thread.sleep(5000);
return "Task completed";
};
try {
// 鎻愪氦浠诲姟骞惰缃秴鏃舵椂闂翠负2绉?/span>
Future<String> future = executor.submit(task);
String result = future.get(2, TimeUnit.SECONDS);
System.out.println(result);
} catch (TimeoutException e) {
// 瓒呮椂澶勭悊
System.out.println("Task timeout");
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
} finally {
executor.shutdownNow(); // 鍏抽棴绾跨▼姹?/span>
}
}
}
鍦ㄤ笂闈㈢殑渚嬪瓙涓紝鎴戜滑鍒涘缓浜嗕竴涓崟绾跨▼鐨勭嚎绋嬫睜锛屽苟鎻愪氦浜嗕竴涓€楁椂鐨勪换鍔°€傞€氳繃Future
瀵硅薄鐨?code>get鏂规硶鏉ヨ幏鍙栦换鍔$殑缁撴灉锛屽苟璁剧疆浜嗚秴鏃舵椂闂翠负2绉掋€傚鏋滀换鍔″湪瓒呮椂鏃堕棿鍐呮病鏈夊畬鎴愶紝浼氭姏鍑?code>TimeoutException锛屾垜浠彲浠ュ湪catch鍧椾腑鍋氱浉搴旂殑澶勭悊銆傛渶鍚庯紝璁板緱瑕佽皟鐢?code>shutdownNow鏂规硶鍏抽棴绾跨▼姹犮€?/p>
相关问答