2 kb08300724 kb08300724 于 2017.09.11 21:56 提问

生产者消费者模式中,图中为什么不能用else啊

图片说明

1个回答

huang931027
huang931027   Rxr 2017.09.12 08:37

你写了else那不就一直在等待了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
生产者消费者模式中条件判断是使用while而不是if
永远在循环(loop)里调用 wait 和 notify,不是在 If 语句 现在你知道wait应该永远在被synchronized的背景下和那个被多线程共享的对象上调用,下一个一定要记住的问题就是,你应该永远在while循环,而不是if语句中调用wait。因为线程是在某些条件下等待的——在我们的例子里,即“如果缓冲区队列是满的话,那么生产者线程应该等待”,你可能直觉就会写一个if语句。但i
java生产者消费者PV操作为中,wait判断条件为何是while不是if疑惑解答
Test.java package com.java.demo;import com.java.pv.Consumer; import com.java.pv.Producer; import com.java.pv.Storage; public class TestMain { /** * @param args * @throws Interrupte
生产者消费者模式(解决多线程容易死锁的一个方案)
生产者消费者问题,也称为有限缓冲问题,是一个多线程同步问题的经典案例。该问题描叙了俩个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生产一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者不会在缓冲区中空时消耗数据  要解决该问题,就必
线程间通信:生产者消费者(都要加锁,且为同一把锁)
线程间通信:生产者消费者(都要加锁,且为同一把锁)
生产者消费者模型(为什么使用两个信号量?)
生产者消费者模型中需要2个信号量,1个互斥量。大致过程如下: P操作:             申请资源,S=S-1。如果S>0,则继续。否则线程阻塞,放入等待队列。 V操作:             释放资源,S=S+1。如果S>0,则继续。否则唤醒等待队列中的第一个线程。 Semaphore empty(N), full(0); Mutex mutex;
为什么Thinkphp 中的<if><volist>等标签不能用
if标签在HTML中用不了,根本没进行判断 tp 里的使用方法为 可以查看自己的模板引擎使用的是什么? 如果你使用的是Smarty引擎,那么if volist 等tp 内置的一些标签是不能用的。 解决办法: 1; 把模板引擎修改为默认的tp 引擎; 2: 使用Smarty 内置的一些标签,{if} 等使用方法,可以参考Smarty使用手册,解
生产者-消费者模式分析
[0]:概述 今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。由于该模式很重要,打算分几个帖子来介绍。今天这个帖子先来扫盲一把。如果你对这个模式已经比较了解,请跳过本扫盲帖,直接看下一个帖子(关于该模式的具体应用)。 看到这里,可能有同学心中犯嘀咕了:在四人帮(GOF)的23种模式里面似乎没听说过这种嘛!其实GOF那经典的23种模式主要是基于OO的(从书名《Des
深入生产者与消费者模式
前提 本示例是生产者向堆栈中 List 对象中放入数据,使消费者从 List 堆栈中取出数据。List 最大容量是 1一生产一消费——操作栈MyStack代码import java.util.ArrayList; import java.util.List;public class MyStack { private List list = new ArrayList(); sync
生产者消费者模型中线程怎样正常退出
生产者:不停地往队列中放数据 消费者:不停地从队列中拿数据 两者通过两个信号量同步 当生产者不再生产数据时,消费者正好挂在一个信号量上,处于睡眠状态,这时候pthread_join也会一直挂着的。该怎样使得消费者正常退出呢? 我的做法是让生产者在往队列中放一个【结束数据】,也就是一个标识,消费者拿到数据后,如果这个数据是结束标识则自杀退出。
生产者消费者模式的几种实现方式以及线程安全问题
生产者消费者模式的几种实现方式拿我们生活中的例子来说,工厂生产出来的产品总是要输出到外面使用的,这就是生产与消费的概念。 在我们实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。 产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 第一种:采用wait—notify实现生产者消费者