扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Java settimeout濡備綍閬垮厤瓒呮椂寮傚父

扬州沐宇科技
2024-06-25 17:45:26
Java

鍦↗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>

扫码添加客服微信