线程安全队列queue


基于std::queue封装一个精简版线程安全的队列,便于以后在多线程应用中使用。

 

 1 #pragma once
 2 #include <queue>
 3 #include “Mutex.h”
 4 
 5 template<class T>
 6 class concurrentQueue
 7 {
 8 public:
 9     concurrentQueue(){}
10 
11     void push(const T& x)
12     {
13         MutexLockGuard lock(_mutex);
14         _qu.push(x);
15     }
16 
17     void pop(T& x)
18     {
19         MutexLockGuard lock(_mutex);
20         x = _qu.front();
21         _qu.pop();
22     }
23 
24     void clear()
25     {
26         MutexLockGuard lock(_mutex);
27         while(!_qu.empty())
28             _qu.pop();
29     }
30 
31     bool empty()
32     {
33         MutexLockGuard lock(_mutex);
34         return _qu.empty();
35     }
36 
37     size_t size()
38     {
39         MutexLockGuard lock(_mutex);
40         return _qu.size();
41     }
42 
43 private:
44     std::queue<T> _qu;
45     MutexLock _mutex;
46 };

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM