Java settimeout濡備綍閬垮厤瓒呮椂寮傚父
鍦↗ava涓病鏈夌被浼糐avaScript涓殑setTimeout鍑芥暟鏉ヨ缃秴鏃舵椂闂淬€備絾鏄彲浠ヤ娇鐢‥xecutorService鍜孎uture鏉ュ疄鐜扮被浼肩殑鍔熻兘锛岄伩鍏嶈秴鏃跺紓甯搞€?/p>
涓嬮潰鏄竴涓ず渚嬩唬鐮侊細
import java.util.concurrent.*;
public class TimeoutExample {
public static void main(String[] args) {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(() -> {
// 杩欓噷鎵ц闇€瑕佽秴鏃舵帶鍒剁殑浠诲姟
try {
Thread.sleep(5000); // 妯℃嫙涓€涓暱鏃堕棿鎵ц鐨勪换鍔?/span>
return "Task completed";
} catch (InterruptedException e) {
return "Task interrupted";
}
});
try {
String result = future.get(3, TimeUnit.SECONDS); // 璁剧疆瓒呮椂鏃堕棿涓?绉?/span>
System.out.println(result);
} catch (TimeoutException e) {
future.cancel(true); // 瓒呮椂鏃跺彇娑堜换鍔?/span>
System.out.println("Task timed out");
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();
}
}
鍦ㄤ笂闈㈢殑绀轰緥涓紝閫氳繃ExecutorService鐨剆ubmit鏂规硶鎻愪氦涓€涓换鍔★紝鐒跺悗浣跨敤future.get鏂规硶璁剧疆瓒呮椂鏃堕棿涓?绉掋€傚鏋滀换鍔″湪3绉掑唴娌℃湁瀹屾垚锛屽皢浼氭姏鍑篢imeoutException寮傚父锛屽苟鍙栨秷浠诲姟鎵ц銆傚鏋滀换鍔″湪瓒呮椂鏃堕棿鍐呭畬鎴愶紝鍒欎細杩斿洖缁撴灉銆?/p>
相关问答