线程生产者消费者
来源:互联网 发布:java应用市场 编辑:程序博客网 时间:2024/05/17 00:12
转载自:http://blog.csdn.net/ghsau/article/details/7433673
假设有这样一种情况,有一个盘子,盘子里只能放一个鸡蛋,A线程专门往盘子里放鸡蛋,如果盘子里有鸡蛋,则一直等到盘子里没鸡蛋,B线程专门从盘子里取鸡蛋,如果盘子里没鸡蛋,则一直等到盘子里有鸡蛋。这里盘子是一个互斥区,每次放鸡蛋是互斥的,每次取鸡蛋也是互斥的,A线程放鸡蛋,如果这时B线程要取鸡蛋,由于A没有释放锁,B线程处于等待状态,进入阻塞队列,放鸡蛋之后,要通知B线程取鸡蛋,B线程进入就绪队列,反过来,B线程取鸡蛋,如果A线程要放鸡蛋,由于B线程没有释放锁,A线程处于等待状态,进入阻塞队列,取鸡蛋之后,要通知A线程放鸡蛋,A线程进入就绪队列。我们希望当盘子里有鸡蛋时,A线程阻塞,B线程就绪,盘子里没鸡蛋时,A线程就绪,B线程阻塞,代码如下:
输出结果: 程序开始,A线程判断盘子是否为空,放入一个鸡蛋,并且唤醒在阻塞队列的一个线程,阻塞队列为空;假设CPU又调度了一个A线程,盘子非空,执行等待,这个A线程进入阻塞队列;然后一个B线程执行,盘子非空,取走鸡蛋,并唤醒阻塞队列的A线程,A线程进入就绪队列,此时就绪队列就一个A线程,马上执行,放入鸡蛋;如果再来A线程重复第一步,在来B线程重复第二步,整个过程就是生产者(A线程)生产鸡蛋,消费者(B线程)消费鸡蛋。 0 0
- 线程,生产者,消费者
- 生产者、消费者 线程同步
- 生产者,消费者线程
- 线程生产者与消费者
- 线程---生产者与消费者
- java 线程生产者消费者
- 生产者消费者线程
- 线程生产者消费者
- 线程同步--生产者消费者
- 线程之“生产者消费者”
- linux线程-生产者/消费者
- 生产者消费者线程
- 线程之生产者消费者
- 线程--生产者消费者模式
- 线程之生产者、消费者
- 生产者线程和消费者线程
- 线程-生产者消费者问题
- 线程(消费者与生产者)
- 【Android】Volley框架的使用简介
- Java异常学习笔记(一)
- 始
- 线段树 敌兵布阵
- Nsight调试笔记
- 线程生产者消费者
- LeetCode 7.Reverse Integer
- IntelliJ IDEA 快捷键和设置
- 在 Linux 下你所不知道的 df 命令的那些功能
- POJ 2096 Collecting Bugs(dp 期望)
- NYOJ迷宫寻宝(一)【BFS】
- gdb调试简单明了,转载
- NVL(SUM(),1)和sql减法运算的综合运算
- PAT1077