C++多线程--线程安全的队列实现(基于锁)

0 引言

本文主要是根据C++ Concurrency in Action (豆瓣)第6章的基于锁的数据结构来讲解相应的队列实现。

本文会给出两种队列

  • 基于STL的queue的线程安全队列
  • 基于链表的线程安全队列

1 预备知识

如何实现一个线程安全的队列?需要遵循什么样的准则?

可参考:

C++多线程--发现接口间固有竞争_qls315的博客-CSDN博客

C++11多线程--线程间共享数据(存在的问题)_qls315的博客-CSDN博客

C++11多线程--使用锁(mutex)保护数据(1)-CSDN博客

总结起来如下:

  • 确保对象的不变量保持不被破坏
  • 确保程序不会出现死锁
  • 保证临界区尽量小,并发度尽量高

你可能感兴趣的:(C++多线程,c++,多线程,linux,开发语言,thread)