我把代码放在这里面了http://hi.baidu.com/sgmxyexmldabere/item/4c92ce54900e793fe6c4a527
这段代码是我从书上抄下来的, 其中43\1行和64行的两个Thread.yield() 很不理解, 为什么要这么做呢?
下面的是我自己猜想的(不知道对不对)
当point为-1时, producer1线程运行遇到Thread.yield(),此时的point为0,而且buffer[0]的值仍为null,并未赋值为goods,如果这个时候轮换到consumer1运行,那么consumer1线程此时的goods赋值等于buffer[0],也就是null,那么会出现consumer1消费的货物为空!
如果这种情况发生, 那么Thread.yield()感觉就是多余的, Thread.yield()在这个实例中到底扮演的是什么作用呢??还是说我的理解有什么问题??
希望大神帮忙
LEATH
神不在的星期二
相关分类