生产者-消费者问题
semaphore full = 0; //同步信号量 代表产品数量,初始肯定是0 缓冲区->消费者
semaphore empty = 5; //同步信号量 代表空闲缓冲区的数量,初始肯定是5 缓冲区->生产者
semaphore mutex = 1; //缓冲区只有一份 是临界资源 互斥
//注意 实现互斥的P操作一定放在实现同步的P操作之后。先同步P后互斥P,否则产生死锁操作!
//生产者进程
productor{
生产数据; //不把这段代码放入在PV操作中是因为减少临界区代码,耗费时间,让更多进程使用临界区资源
P(empty);
P(mutex);
把产品放入缓冲区; //访问临界资源
V(mutex);
V(full);
}
consumer{
P(full);
P(mutex);
从缓冲区中取数据;//访问临界资源
V(mutex);
V(empty);
消费数据;//不把这段代码放入在PV操作中是因为减少临界区代码,耗费时间,让更多进程使用临界区资源
}
生产者-消费者问题 -(进程)-操作系统
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 实验题目 实验三 使用信号量解决生产者/消费者同步问题(lab3)实验目的:使用操作系统信号量机制,编写程序解决生...
- 一、信号量 信号量是一个与队列有关的整型变量。 可以初始化成非负数; semWait操作使信号量减1。若值为负数,...
- 问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为 n 的缓冲区,只有缓冲区没满时,生产者才能把消息...
- 问题描述 一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放入...
- Java 并发1:线程的基本概念volatile&synchronized关键字 Java 并发2 :Java中的...