Skip to content

Nicooo-Wang/Pipeline-Queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文|English

面向对象的生产者消费者模板

当涉及到多线程或多进程环境下的任务协调和数据共享时,生产者消费者模型是一个常见的设计模式。生产者消费者模型基于一个共享的有限缓冲区,其中生产者线程生成数据并将其放入缓冲区,而消费者线程从缓冲区中取出数据进行消费。

这种模型的主要目标是实现生产者和消费者之间的协调和同步,以避免生产者在缓冲区已满时仍然继续生产,消费者在缓冲区为空时仍然继续消费的问题。

生产者消费者模型广泛应用于各种场景,例如网站的请求的处理、安卓系统中UI界面的渲染(Buffer Queue)...它可以帮助实现任务的异步执行,提高系统的吞吐量和效率。通过生产者消费者模型,可以实现请求的协调和同步,增大系统的吞吐量和效率。

本项目的目的是通过实现一个单生产者单消费者Pipeline模板,采用面向对象进行设计,将Pipeline中的复杂操作进行封装。

项目大纲

该项目分为3个子项目,逐步地完成一个C++面向对象地生产者消费者Pipeline项目实现

  1. 简单的线程间通信:使用mutex、condition_variable完成一个生产者消费者Pipeline;请切换pipe-queue-func分支
  2. 线程类的封装:封装一个线程类,通过class的声明周期显示控制线程的声明周期;请切换thread-class分支
  3. 面向对象的生产者消费者Pipeline:综合项目1、2,完成Pipleline class,将生产者消费者封装在Pipeline class中;请切换Producer-Consumer-Pipeline分支

详细代码剖析见个人博客链接.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published