黑马程序员技术交流社区

标题: 今天看了多线程同步锁的视频 [打印本页]

作者: 拖拉机。    时间: 2014-7-4 22:43
标题: 今天看了多线程同步锁的视频
今天看了老毕的多线程,消费者购买者视频。
感觉有点小不懂啊。
为什么在同步里面,要用到while,用了while之后为何所有线程会进入冻结状态呢?:'(
作者: 吴杰栋    时间: 2014-7-18 19:31
使用if的话,假如有2条线程进来,这个两条线程都是在if代码下面的,假如Thread-0出现wait状态,这个时候执行Thread-1,等到Thread-1执行完毕,唤醒Thread-0的时候,这个时候问题的关键来了,由于if指挥判断一次,当Thread-0唤醒的时候,它不会再去进行条件的判断,这样就会多生产,少消费的情况.
而使用while循环的时候,就避免了判断一次的弊端,当Thread-0唤醒的时候,它还会进入while中的条件去进行判断,这样就避免了多生产问题的出现.





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