如何在Runnable内部停止Runnable?

4
我正在尝试创建一个可运行程序,用于测试您是否死亡(健康值低于1),如果您已经死亡,则会停止该程序。如果您没有死亡,它将继续运行。但我找不到停止此程序的方法。是否有一种在脚本内部停止可运行程序的方法?
请注意,可运行程序是通过线程运行的:
Thread thread1 = new Thread(runnableName);
thread1.start();

示例代码:

Runnable r1 = new Runnable() {
    public void run() {
        while (true) {
            if (health < 1) {
                // How do i stop the runnable?
            }
        }
    }
}

5
您无需进行任何特殊处理,只需完成您的 run 方法即可终止线程。 - Welbog
检查你是否死亡的脚本在一个while循环中。 - Potato
3
退出while循环。 - Welbog
在这种情况下,您可以添加一个易失性布尔值来中断您的循环,或者中断运行代码的线程。 - M. Prokhorov
在检查健康状况时,请确保进行一些同步。 - efekctive
显示剩余3条评论
2个回答

2

如果健康值小于1,你可以打破循环:

if (health < 1) {
    break;
}

或者您可以更改while条件:

while (health > 1) {

}

1
while (true) {
    if (health < 1) {
        // How do i stop the runnable?
        return;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接