中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Java倒計時器的代碼實現有哪些技巧

小樊
82
2024-09-03 15:09:16
欄目: 編程語言

在Java中,實現倒計時器的方法有很多,以下是一些常見的技巧:

  1. 使用Thread.sleep()方法:
public class CountdownTimer {
    public static void main(String[] args) {
        int seconds = 10;
        for (int i = seconds; i >= 0; i--) {
            System.out.println(i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
  1. 使用ScheduledExecutorService
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class CountdownTimer {
    public static void main(String[] args) {
        int seconds = 10;
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
        executor.scheduleAtFixedRate(() -> {
            if (seconds > 0) {
                System.out.println(seconds--);
            } else {
                executor.shutdown();
            }
        }, 0, 1, TimeUnit.SECONDS);
    }
}
  1. 使用CountDownLatch
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

public class CountdownTimer {
    public static void main(String[] args) {
        int seconds = 10;
        CountDownLatch latch = new CountDownLatch(seconds);
        for (int i = 0; i< seconds; i++) {
            new Thread(() -> {
                try {
                    latch.await();
                    System.out.println(seconds--);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }).start();
            latch.countDown();
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
  1. 使用CompletableFuture
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;

public class CountdownTimer {
    public static void main(String[] args) {
        int seconds = 10;
        CompletableFuture.runAsync(() -> {
            while (seconds >= 0) {
                System.out.println(seconds--);
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

這些技巧可以根據你的需求進行組合和修改。注意,當在生產環境中使用倒計時器時,請確保正確處理線程中斷和異常。

0
海城市| 鸡东县| 丹寨县| 新竹市| 青冈县| 手游| 吉安市| 大丰市| 西吉县| 河津市| 合川市| 太原市| 玉龙| 肇州县| 铜梁县| 天镇县| 宁德市| 嘉黎县| 乌鲁木齐县| 普定县| 泸州市| 桂林市| 泰州市| 尚志市| 二手房| 泽普县| 荔波县| 咸宁市| 菏泽市| 双城市| 门源| 手游| 渑池县| 阳泉市| 威海市| 景东| 望江县| 墨竹工卡县| 措美县| 枣庄市| 玉门市|