黑马程序员技术交流社区

标题: 多个线程间的通信问题 [打印本页]

作者: MarsBong    时间: 2016-9-7 01:02
标题: 多个线程间的通信问题
在线程间通信问题时使用if或者while进行判断,是有区别的,具体如下:
f语句是在哪里等待就在哪里起来,再次起来时不会再经过if判断,而是直接唤醒线程进行执行
while语句,首先经过判断,符合条件才会被唤醒
使用notify是随机唤醒单个线程,这样的弊端,结合if可能产生某个线程一直不能执行,结合while可能产生执行不下去,一直唤醒不符合条件的线程
解决方案:使用notifyAll()唤醒所有线程,再结合while进行判断,弊端是每次都会唤醒所有的线程




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2