java多线程下为什么建议使用while不使用if

Python013

java多线程下为什么建议使用while不使用if,第1张

情况太多了,我这边说一种情况

在阻塞队列中,通常都会用while,因为当队列满的时候,阻塞队列的入队操作要实现阻塞效果,只有用while循环来判断,如果用if判断的话,这个元素就永远无法进入队列了.

所以在多线程的时候,通常我们会有类似阻塞对象的操作,一个线程要等待某个条件满足的时候才能继续运行.所以通常用while来实现阻塞效果

如果多线程的时候不采用阻塞操作的话,那会有很严重的并发问题,如果你先后启动了两个线程去修改用户余额,如果第二个线程先跑完,第一个线程后跑完,那么余额肯定是不正确的!

else不带有if的意思是前面所有条件都不满足的情况下才执行else中的语句。属于if语句的一部分。

补充:

if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的语句块。if语句的三种形式,其三种形式如下:

1:if型

if (expression){

//statement

}说明:如果expression表达式为真就执行statement语句块

2:if-else型

if (expression) {

//statement1

} else {

//statement2

}说明:如果expression为真,则执行statement1,否则执行statement2

3:if-else

if-else型

if (expression1) {

//statement1

} else if(expression2) {

//statement2

} else {

//statement3

}说明:如果expression1为真,则执行statement1,否则,如果expression2为真,则执行statement2,否则执行statement3,只要有一个表达式为真,则不再往下判断。其中else if可以出现多个,else可以不出现,需要视情况灵活运用。

int score = 300

//三目运算符,最后的D级判断,我这里是直接把低于220分的归于D,如果还有再小的等级,则按表达式前面那样,继续嵌套三目运算符

String result = score>=360?"A":(score>=300&& score<360?"B":(score>=220&&score<300?"C":"D"))