¿Por qué Pthread_cond_wait necesita un mutex?
¿Por qué Pthread_cond_wait necesita un mutex?

Video: ¿Por qué Pthread_cond_wait necesita un mutex?

Video: ¿Por qué Pthread_cond_wait necesita un mutex?
Video: Mutex. Sincronización de hilos. Programar en C, Linux 2024, Noviembre
Anonim

los mutex se utiliza para proteger la propia variable de condición. Es por eso que tu necesitar se cerró delante de ti hacer una espera. Luego, cuando la variable de condición sea señalizada o transmitida a, uno o más de los hilos en la lista de espera se despertarán y el mutex se bloqueará mágicamente de nuevo para ese hilo.

Con respecto a esto, ¿Pthread_cond_wait desbloquea mutex?

los pthread_cond_wait La función () bloquea el hilo de llamada en la variable de condición cond, y desbloquea la asociada mutex mutex . El hilo de llamada debe haberse bloqueado mutex antes de esperar la variable de condición. Al regresar de la función, el mutex vuelve a estar bloqueado y es propiedad del subproceso que realiza la llamada.

Posteriormente, la pregunta es, ¿por qué se necesita mutex? Asegura que solo un hilo esté ejecutando una pieza clave de código a la vez, lo que a su vez limita el acceso a una estructura de datos. Asegura que ambos subprocesos tengan una vista completa y adecuada de esa memoria independientemente de cualquier reordenamiento de la CPU. los mutex es una necesidad absoluta cuando se hace programación concurrente.

Además de lo anterior, ¿por qué las variables de condición necesitan mutex?

los mutex es utilizado para proteger el variable de condición sí mismo. Es por eso que tu necesitar se cerró delante de ti hacer una espera. Entonces cuando el la variable de condición es señalado o transmitido a, uno o más de los hilos en la lista de espera voluntad ser despertado y el mutex será ser mágicamente bloqueado de nuevo para ese hilo.

¿Por qué necesitamos variables de condición?

Variables de condición ¡Deje que un conjunto de hilos duerma hasta que le hagan cosquillas! Puede hacer cosquillas en un hilo o en todos los hilos que están durmiendo. Si solo activa un hilo, el sistema operativo decidirá qué hilo despertar.

Recomendado: