优化阻塞队列实现的建议

时间:2010-10-29 14:34:11

标签: c++ multithreading pthreads

T BlockingQueue<T>::pop( ) { 
       pthread_mutex_lock(&lock);
       if (list.empty( )) { 
           pthread_cond_wait(&cond) ;
       }
       T temp = list.front( );
       list.pop_front( );
       pthread_mutex_unlock(&lock);
       return temp;
}

以上是基于底层链表和pthreads的模板化并发阻塞队列定义的pop操作。我的问题:我们可以在哪些方面进一步优化此代码?

2 个答案:

答案 0 :(得分:2)

并发处理看起来非常简单。您的底层容器是perf调整的最佳候选者。这真的是一个链表吗?如果你只做FIFO操作,deque会更好。

编辑:另请参阅Anthony Williams(编写当前的Boost.Thread)here的示例代码,以获取提示和详细讨论。

答案 1 :(得分:0)

在您当前的解决方案中,您尝试通过进一步优化实现的具体问题是什么?