虽然循环不起作用?

时间:2018-04-05 15:33:07

标签: java multithreading

看起来似乎很愚蠢,但我被困在这里。 我的代码:

String status = "INPROCESS"    
logger.info("Job status: 1. "+prevStatus);
    logger.info("Job status: 2. "+status);
    while (!status.equalsIgnoreCase("ERROR") && !status.equalsIgnoreCase("COMPLETE")) {
        Thread.sleep(10000);
        map = ConfigUtils.getJobStatus(jobDetailsBean, processTaskBean);
        status = map.get("status");
        logger.info("Job status: 3. "+status);
    }

在我的屏幕上打印的内容是:

Job status: 1. IN_PROCESS
Job status: 2. IN_PROCESS

我的问题: 当值既不是ERROR也不是COMPLETE时,为什么它不进入循环?

此代码在另一个使用执行程序框架的线程启动的线程上运行。 目前状态为INPROCESS。

ConfigUtils.getJobStatus(jobDetailsBean, processTaskBean);

运行并更新作业的状态。现在,当线程运行时,它会打印日志,然后完全跳过while循环,导致状态不更新。

1 个答案:

答案 0 :(得分:-1)

你要求“或者”的情况,在这种情况下把|| (或)代替&& (和)。

在您的情况下,它将检查两种情况。