黑马程序员技术交流社区

标题: 多线程的问题 [打印本页]

作者: wyasln    时间: 2015-12-1 15:25
标题: 多线程的问题
练习多线程时候写的
下面这样写就可以正常执行线程
//消费者
class Consumer implements Runnable
{
        //定义资源
        private SharedRes res;
        //构造方法
        Consumer(SharedRes res)
        {
                this.res = res;
        }
    //重写run()方法
        public void run()
        {
                //消费操作,在有资源时不断调用consume()方法
                while(true)
                {
                        res.consume();                       
                }       
        }
}

但是下面在run()方法里面的while里面几个了判断,怎么这个线程就执行不了呢?
public void run()
        {
                //消费操作,在有资源时不断调用consume()方法
                while(true)
                {
                        if(res.getCount()>0)
                        {
                          res.consume();       
                        }                               
                }       
        }


作者: bukai123    时间: 2015-12-2 22:35
哪里有问题
作者: Id_820    时间: 2015-12-2 23:02
不会吧 ! 按照这样的写法,是可以的呀!
作者: 队长别开枪是我    时间: 2015-12-2 23:36
顶一下~虽然不明白
作者: 王帅---    时间: 2015-12-3 12:47
能不能发完整的代码
作者: Weidan    时间: 2015-12-3 20:33
我觉得是不是res.getCount()>0这里被干掉了?
作者: 八宝    时间: 2015-12-3 21:08
你说的执行不了是什么意思,是编译不通过还是线程开启不运行 是不是死锁了,如果多个线程执行同一个资源。又有互斥关系可能会出现死锁呢,能发全的代码吗
作者: 牛德阳    时间: 2015-12-3 21:13
不明白啊




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