1
没有打印语句,循环看不到其他线程更改的值
在我的代码中,我有一个循环,等待某个状态从其他线程更改。另一个线程可以工作,但是我的循环从未看到更改过的值。它永远等待。但是,当我System.out.println在循环中放入一条语句时,它突然起作用了!为什么? 以下是我的代码示例: class MyHouse { boolean pizzaArrived = false; void eatPizza() { while (pizzaArrived == false) { //System.out.println("waiting"); } System.out.println("That was delicious!"); } void deliverPizza() { pizzaArrived = true; } } 在while循环运行时,我deliverPizza()从另一个线程调用以设置pizzaArrived变量。但是循环仅在我取消注释该System.out.println("waiting");语句时有效。这是怎么回事?