1、通过编写程序,掌握基本的同步互斥算法,理解生产者和消费者模型。 2、了解多线程并发执行机制,线程间的同步和互斥。 3、学习使用同步对象,掌握相应的函数。
2020-01-03 11:32:11 172KB 生产者消费者
1
本课程设计的目的是通过设计一个消费者进程与生产者进程的同步模拟系统,认识进程间的同步机制生产者消费者问题是一个著名的进程同步问题。 (1) 有一群生产者进程在生产消息, 并将消息提供给消费者进程去消费。为使生产者进程和消费者进程能并发执行, 在它们之间设置了一个具有n个缓冲区的缓冲池, 生产者进程可将它所生产的消息放入一个缓冲区中, 消费者进程可从一个缓冲区中取得一个消息消费。 (2) 尽管所有的生产者进程和消费者进程都以异步方式运行, 但它们之间必须保持同步, 即不允许消费进程者到一个空缓冲区去取消息, 也不允许生产者进程向一个已装有消息且尚未被取走消息的缓冲区中投放消息。 (3) 任何时刻只能有一个进程可对共享缓冲区进行操作 这是一个用Eclipse为工具、java为编程语言而实现模拟消费者进程与生产者进程的同步。
1
用C语言实现的多线程生产者消费者问题 可运行 包含源程序及实验报告 内含流程图 运行截图
2019-12-30 03:04:43 101KB 生产者消费者 操作系统实验 多线程
1
基于c++MFC的生产者-消费者问题的实现,可任意输入生产者消费者以及缓冲区的数量,动态显示生产消费的缓冲区情况。
2019-12-26 03:01:26 3.76MB c++ 生产者 消费者 操作系统
1
参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。 可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。
2019-12-21 21:25:35 3KB 操作系统
1
用多线程同步方法解决生产者-消费者问题(操作系统课设
2019-12-21 20:41:47 155KB 课程设计
1
问题描述:一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池,只要缓冲池未空,消费者可从缓冲池取走一个消息。
2019-12-21 20:35:05 251KB 生产 消费
1
基本纯使用标准C++库,与平台无关,主要使用多线程、互斥锁、条件变量。演示多个生产者多个消费者之间的同步问题
2019-12-21 20:31:02 3KB 生产者消费者
1
利用互斥锁和计数信号完成生产者消费者问题 一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。 生产者和消费者对缓冲区互斥访问是互斥关系,同时生产者和消费者又是一个相互协作的关系,只有生产者生产之后,消费者才能消费,他们又是同步关系。 信号量设置:信号量mutex作为互斥信号量,它用于控制互斥访问缓冲池,互斥信号量初值为1;信号量full用于记录当前缓冲池中“满”缓冲区数,初值为0。信号量empty用于记录当前缓冲池中“空”缓冲区数,初值为n。 主函数负责接收参数,初始化信号量,创建生产者线程,创建消费者线程,睡眠一段时间后,结束程序
2019-12-21 20:29:12 2KB Linux 生产者消费者
1
Linux C语言 实现利用多进程或多线程模拟实现生产者/消费者问题。 (站在巨人的肩膀上)
2019-12-21 20:11:00 1KB LinuxC 多进程 多线程 生产者
1