在阻塞队列中,通常都会用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"))