Skip to content

chaiqingao/Producer-Consumer-Problem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

生产者消费者问题的OpenMP实现

简介

生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两个线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。

本项目针对该问题,使用OpenMP编程,实现生产者向缓冲区发送消息,消费者从缓冲区读取消息并打印。

依赖

  • g++
  • OpenMP

用法

mkdir build
cd build
cmake ..
make

演示

OpenMP_PCP

在本实例中,设置队列长度为10,生产者为线程0与线程1,消费者为线程2与线程3。生产者发送A-Z共26个字母,消费者负责接收。为了便于观察,这里设置生产者发送消息需要0-500ms(随机),消费者接受消息需要500-1000ms(随机)。

demo

About

生产者消费者问题的OpenMP实现

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published