Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

holmes1412/queue

Repository files navigation

queue

一些消息队列的简单demo实现。

基本分类

由于正在学习不同队列的实现,这里列举了一些简单的模型,都是多生产者多消费者适用的,而基于CAS和work stealing的队列模型暂时还不在这个demo的尝试范围内。

  • basic_queue: 单锁、单条件变量,可以使用锁外唤醒
  • double_lock_queue: 双锁、双条件变量
  • double_list_queue: workflow内部使用的双队列模型,双锁、双条件变量、双队列
  • mpmc_queue: grpc内部的多生产者多消费者队列模型,单锁、若干条件变量、单队列、外加一个等待者队列(避免唤醒惊群且优化了cache line),由于后来加的所以对比图中暂时还没加上。

写了几篇鶸鶸的笔记,在知乎:

消息队列优化 -- 鶸的介绍篇

消息队列优化 -- 几种基本实现

消息队列优化 -- grpc MPMCQueue 简介及各队列性能对比

消息队列新实现 -- Workflow msgqueue代码详解

鶸鶸的我也会持续学习和改进〜本demo也会持续更新〜

一个简单的对比图

IMG

一些简单的空跑测试结果

IMG

About

some different implementations of queue and test result

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /