Pthread Mutex: pthread_mutex_unlock () consume mucho tiempo

Escribí un programa multi-hilo con pthread, usando el modelo productor-consumidor.

Cuando uso el generador de perfiles Intel VTune para crear un perfil de mi programa, descubrí que el productor y el consumidor pasan mucho tiempo en pthread_mutex_unlock. No entiendo por qué sucedió esto. Creo que los hilos pueden esperar mucho tiempo antes de que puedan adquirir un mutex, pero liberar un mutex debería ser rápido, ¿no?

La instantánea a continuación es de Intel VTune. Muestra los códigos donde el consumidor intenta recuperar un elemento del búfer y el tiempo consumido por cada línea de código.

Mi pregunta es por qué pthread_mutex_unlock tiene tanta sobrecarga? ¿Es el problema con pthread mutex o con la forma en que lo uso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta