实验?/p>
同步与互?/p>
【实验目的和要求?/p>

1
、掌握进程(线程)的同步与互斥?/p>
2
、掌握生产者消费者问题的实现方法?/p>
3
、掌握多线程编程方法?/p>
【实验内容?/p>
实现生产者消费者问?/p>
1
、有一个仓库,生产者负责生产产品,并放入仓库,消费者会从仓库中拿走?/p>
?/p>
(
消费
)
?/p>
2
、仓库中每次只能入一?/p>
(
生产者或消费?/p>
)
?/p>
3
、仓库中可存放产品的数量最?/p>
10
?/p>
,
当仓库放满时,生产者不能再放入?/p>
品?/p>
4
、当仓库空时,消费者不能从中取出产品?/p>
5
、生产、消费速度不同?/p>
【实验原理?/p>
1
、信号量
mutex
提供对缓冲池访问的互斥要求并初始化为
1
,信号量
empty
?/p>
full
分别用来表示空缓冲项和满缓冲项的个数,信号量
empty
初始化为
n
?/p>
信号?/p>
full
初始化为
0
?/p>
2
、定义如下结构及数据?/p>
定义缓冲区内的数据类型:
typedef
int
buffer_item;