gpt4 book ai didi

java - 无法理解变量 PizzaNum 的值变化

转载 作者:行者123 更新时间:2023-12-01 11:21:19 24 4
gpt4 key购买 nike

在下面的代码中,我尝试制作 10 个 Pizzaz(当 pizzaNum 的值变为 10),然后通过不同的线程为它们提供服务(我只使用一个线程来解决问题),但只是在run 方法开始时,pizzaNum 的值变为0。为什么?我无法理解这一点。

public class NewDiningHall {
static int pizzaNum;
static int studentID;

public void makePizza() {
pizzaNum++;
}

static class PizzaServe extends Thread {
public void run(){
System.out.println("Before run "+pizzaNum);
String result;
if (pizzaNum > 0) {
result = "Served ";
pizzaNum--;
}
else
result = "Starved ";
System.out.println(pizzaNum+" "+result + studentID);
studentID++;
}
}

public static void main(String[] args){
NewDiningHall d = new NewDiningHall();
for (int i = 1; i <= 10; i++) {
d.makePizza();
}
System.out.println(d.pizzaNum);
PizzaServe t1 = new PizzaServe();
t1.start();
}
}

输出:

10
Before run 0
0 Starved 0

最佳答案

首先用

重命名
public class DiningHall {

并运行它,因为我已收到输出

10
Before run 10
9 Served 0

所以它有效!

再见

关于java - 无法理解变量 PizzaNum 的值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194611/

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