阿凡卢 发表于 2012-10-25 01:35:21

Linux下设计并发队列

设计并发队列
#include <pthread.h>#include <list>using namespace std;template <typename T>class Queue { public:   Queue( )   {         pthread_mutex_init(&_lock, NULL);   }   ~Queue( )   {         pthread_mutex_destroy(&_lock);    }   void push(const T& data);    T pop( ); private:   list<T> _list;   pthread_mutex_t _lock;};template <typename T>void Queue<T>::push(const T& value ) {   pthread_mutex_lock(&_lock);    _list.push_back(value);    pthread_mutex_unlock(&_lock);}template <typename T>T Queue<T>::pop( ) {   if (_list.empty( ))   {         throw "element not found";    }    pthread_mutex_lock(&_lock);   T _temp = _list.front( );    _list.pop_front( );    pthread_mutex_unlock(&_lock);    return _temp;}
页: [1]
查看完整版本: Linux下设计并发队列