文件名称:生产者消费者问题(有限缓存问题,Linux下运行)
文件大小:4KB
文件格式:C
更新时间:2012-12-14 16:41:55
生产者消费者 有限缓存 Linux 多线程 信号量
生产者和消费者问题: 1、建立一个有界的缓冲区buffer_item buffer[BUFFER_SIZE],大小BUFFER_SIZE为5。 2、主线程(main函数)操作如下:从命令行获取程序参数;初始化信号量及二进制锁;创建生产者线程与消费者线程;休眠一段时间令生产者线程与消费者线程对有界的缓冲区进行操作;退出程序。 3、设置两个信号量full和empty,分别在有界的缓冲区buffer空或者满时防止消费者或生产者进入临界区对buffer进行操作。设置一个锁mutex,防止多个线程同时进入buffer。 4、生产者操作:休眠一段随机时间,生产一个随机数,添加到有界的缓冲区中。进入临界区前先wait empty与mutex,出临界区后signal full和mutex。 5、消费者操作:休眠一段随机时间,进入有界的缓冲区中取走一个数。进入临界区前先wait(full)与wait(mutex),出临界区后signal (empty)和signal (mutex)。