亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
原阳县| 锦州市| 赣州市| 临潭县| 祁连县| 临夏县| 天等县| 蒙山县| 承德市| 麻江县| 淮滨县| 武强县| 宁陵县| 安岳县| 东港市| 莲花县| 天全县| 广平县| 高密市| 包头市| 娄烦县| 南靖县| 上杭县| 广饶县| 南通市| 周宁县| 沧州市| 平山县| 玛沁县| 新田县| 青田县| 泗洪县| 册亨县| 台州市| 阿克陶县| 西乌| 安陆市| 施秉县| 团风县| 凤冈县| 鄂托克旗|