Discuss / Java / while 和if的差别

while 和if的差别

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

如果是用while作判断,每次wait被notify唤醒后都要先判断当前队列是否为空,而if做判断时,如果wait被唤醒,则不管三七二十一直接获取队列元素,此时如果队列元素被其他线程取走,那么该线程就报nosuchelement exception

langxc

#2 Created at ... [Delete] [Delete and Lock User]

用if为啥就不走判断了?

不是不走判断,是if只走一次,执行wait()的时候,if已经执行过了


  • 1

Reply