gpt4 book ai didi

java - 使用 Thread.sleep 与 CountDownLatch 保持主线程运行

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:12 24 4
gpt4 key购买 nike

我希望我的主线程运行,因为我有一些监听器将监听另一个线程中的请求/消息,我不希望我的主线程死掉。

哪个更好

倒计时锁

public static void main(String[] args) throws InterruptedException {

startListener();
CountDownLatch latch = new CountDownLatch(1);
latch.await();

}

或者在 sleep 的时候

public static void main(String[] args) throws InterruptedException {

startListener();
while (true){
Thread.sleep(1000);
}

}

最佳答案

假设您的监听器线程是 a non-daemon thread你可以让主线程完成。只要有非守护线程在执行,JVM 就会继续运行。

CountDownLatch 如果您计划实现正常关机,将是更好的解决方案。您可以触发闩锁并通过执行清理逻辑让主线程完成。想想应用程序将如何关闭,例如当监听器正在从队列中读取消息时,您会收到一个 SIGTERM 信号,然后呢?

关于java - 使用 Thread.sleep 与 CountDownLatch 保持主线程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com