线程安全队列
c11正式引入了自己的线程类,让c++的多线程编程变的更加优雅。由于不同的编译器对新特性的支持有所差异,这里的代码都是在gcc 4.8版本下编译运行。
涉及到的C++11的知识如下:
- thread 线程库
- 同步和互斥有关量:mutex 和 condition_variable
- 简单的资源管理类:lock_guard,unique_lock,shared_ptr.
- lambda表达式
底层容器为queue,这里将取元素front() 和弹出pop()操作合并为一个接口,为了防止以下事件:在取元素和弹出元素之间这段时间又有其他线程进行front()或者pop(),出现 错误。
#include <iostream>
#include <thread>
#include <condition_variable>