温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java While循环怎么暂停

发布时间:2026-08-30 03:12:34 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 里,while 循环本身没有“暂停”这个语法,通常我们通过条件控制、sleep、或 wait/notify 等方式来实现“暂停”或“等待”的效果。下面按常见场景给你说明。


一、最常用:Thread.sleep()(定时暂停)

如果你是让 while 循环每隔一段时间执行一次,这是最常见的方式。

while (true) {
    System.out.println("运行中...");

    try {
        Thread.sleep(1000); // 暂停 1000 毫秒(1 秒)
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

✅ 适合:定时任务、轮询、动画、心跳检测等
⚠️ 注意:sleep 不会释放锁(如果 synchronized 中)


二、通过条件控制 while 循环是否继续(逻辑暂停)

可以用一个 boolean 变量来控制循环是否继续。

boolean running = true;

while (running) {
    System.out.println("正在运行");

    // 某个条件触发暂停
    if (某个条件) {
        running = false;
    }
}

或者在循环里“跳过执行”:

boolean paused = false;

while (true) {
    if (!paused) {
        System.out.println("执行任务");
    }

    if (某个条件) {
        paused = true;
    }
}

✅ 适合:游戏、状态机、控制流程


三、使用 wait() / notify()(线程间暂停 / 恢复)

如果你是要真正暂停线程,并在之后恢复,这是正确方式。

final Object lock = new Object();
boolean paused = false;

// 线程中
while (true) {
    synchronized (lock) {
        while (paused) {
            lock.wait(); // 线程暂停
        }
    }
    System.out.println("执行中");
}

// 暂停
paused = true;

// 恢复
synchronized (lock) {
    paused = false;
    lock.notify();
}

✅ 适合:多线程、生产者/消费者、复杂控制
⚠️ 必须在 synchronized 中使用


四、退出 while 循环(不是暂停)

如果只是想结束循环

while (true) {
    if (条件) {
        break; // 立即停止 while 循环
    }
}

五、总结对照表

需求 推荐方式
定时执行 Thread.sleep()
条件控制是否继续 boolean 变量
暂停 / 恢复线程 wait() / notify()
直接结束循环 break

如果你能具体说一下使用场景(比如:游戏循环、服务端轮询、监听用户输入、GUI 程序),我可以给你一个更贴切的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI