gpt4 book ai didi

java - 多线程中的条件

转载 作者:行者123 更新时间:2023-12-01 19:53:36 25 4
gpt4 key购买 nike

我有这段代码控制两个线程。

synchronized public void run() {
switch(ThreadChoice){
case 1:
dataBase();
break;
case 2:
ViewTotal.choice=1;new ViewTotal().displayDatabase();
break;
}
}

当我使用SWITCH语句时,它工作正常,但如果我使用if、if-else或if-else-if,它就无法正常工作。这是带有 if 语句的代码。

synchronized public void run() {

if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2)ViewTotal.choice=1;new ViewTotal().displayDatabase();
}

当使用if情况时,它会在两个条件下执行代码,但当使用switch时,它只执行指定的情况。任何人都可以详细说明一下吗?我对此很困惑。提前致谢

最佳答案

这个:

if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2)ViewTotal.choice=1;new ViewTotal().displayDatabase();

等同于:

if(ThreadChoice==1) {
dataBase();
} else if(ThreadChoice==2) {
ViewTotal.choice=1;
}
new ViewTotal().displayDatabase();

如果您希望 new ViewTotal().displayDatabase(); 仅针对 ThreadChoice==2 执行,则需要使用大括号,并将其放在适当的大括号:

if(ThreadChoice==1)dataBase();
else if(ThreadChoice==2) { ViewTotal.choice=1;new ViewTotal().displayDatabase(); }

但是始终使用大括号并每行放置一个语句是一个相当好的主意,这样您的意图就很明确。

关于java - 多线程中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50392623/

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