经典进程同步问题(一)——生产者、消费者问题
来源:互联网 发布:淘宝下拉菜单小图标 编辑:程序博客网 时间:2024/05/19 11:50
今天学习了如题的问题,在此记录。
下面是每个部分问题的算法实现:
PS:P()、V()操作分别是wait()和signal()原语操作
V1.0
//注意此处的信号量的初始值Semaphore full = 0;//下边的两个进程执行顺序没有先后Produce: ...; put product to buffer; V(full); ...;Consumer: ...; P(full); take product from buffer; ...;
V2.0
Semaphore empty = 0,full = 0;Producter: while(true){ ...; P(empty); put product into buffer; V(full); ...; }Consumer: while(true){ ...; P(full); get product from buffer; V(empty); ...; }
V3.0
Semaphore empty = 0,full = 0;Producter: while(true){ ...; P(empty); put product into buffer; V(full); ...; }Consumer: while(true){ ...; P(full); get product from buffer; V(empty); ...; }
V4.0
//信号量Semaphore empty = 0,full = 0,mutex = 1;//公共变量item buffer[n];int i = 0,j = 0;Producter: while(true){ ...; P(empty);//限制一次进入一个进程 P(mutex);//限制一次只能进入一个缓冲区 buffer[i] = product; i = (i + 1) mod n; V(mutex); V(full); ...; }Consumer: while(true){ ...; P(full); P(mutex); take buffer[j]; j = (j + 1) mod n; V(mutex); V(empty); ...; }
阅读全文
0 0
- 经典进程同步问题(一)——生产者、消费者问题
- 经典进程同步问题 生产者——消费者问题
- 经典进程同步问题-生产者消费者问题
- 操作系统:经典进程同步问题(1)生产者-消费者问题
- 经典进程同步问题-生产者与消费者
- 经典同步问题(一)---生产者与消费者问题
- 线程同步经典问题——生产者消费者问题
- 【操作系统总结】经典的进程同步问题-生产者消费者问题
- 进程同步-生产者消费者问题
- 进程同步-生产者消费者问题
- 进程间同步互斥经典问题(一)生产者-消费者问题
- 经典进程的同步问题-生产者与消费者
- 进程同步问题(1)——生产者,消费者 & 读者,写者问题
- 进程同步问题-生产者消费者问题(linux semaphore实现)
- 经典线程同步问题(生产者&消费者)
- java同步经典问题生产者消费者
- 经典同步问题--生产者和消费者
- C++模拟“生产者消费者”进程同步问题
- mysql 定时备份数据库脚本
- 不带头结点的链表操作及其逆置
- unity2017破解失败
- 1071. 小赌怡情(15)
- Java 反射(Reflection)
- 经典进程同步问题(一)——生产者、消费者问题
- 注册驱动并建立数据库的连接
- 作业整理
- C++的宏
- Eclipese无法自动弹出提示
- SDWebImage 原理及使用
- 算法导论 作业笔记
- 在elasticsearch 5.X下配置单机多节点
- js中DOM, DOCUMENT, BOM, WINDOW 区别