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;
}
Выше приведена операция pop, определенная для шаблонной очереди одновременной блокировки, основанной на базовом связанном списке и pthreads. Мой вопрос: каким образом мы могли бы оптимизировать этот код дальше?