Estoy desarrollando una aplicación en la que hago multihebra. Uno de mis hilos de trabajo muestra imágenes en el widget. Otro hilo reproduce sonido. Quiero detener/suspender/pausar/suspender los hilos en un evento de clic de botón. Es lo mismo que cuando hacemos clic en el botón reproducción/pausa del reproductor de video. Estoy desarrollando mi aplicación en C++ en la plataforma Linux utilizando la biblioteca pthread para enhebrar.Cómo dormir o pausar un PThread en c en Linux
¿Alguien puede decirme cómo logro los hilos pause/suspend?
No es realmente seguro acceder alguna vez a una variable compartida globalmente en un entorno de subprocesos múltiples. Bloquee el mutex antes de buscar '! Play' y también use un mutex cuando configure' play = 0; '. En la práctica, esto no será un problema en un solo sistema central, pero siempre es mejor escribir un código correcto/a prueba de futuro. –
En la práctica, tampoco será un problema para la mayoría de los sistemas multi-core, aunque tienes razón, esto necesita al menos un par de barreras de memoria. Sin ellos, la pausa podría tomar un tiempo arbitrariamente largo para surtir efecto. Por supuesto, solo bloquear el mutex también está bien, y editaré esta respuesta para hacer eso. :) – LnxPrgr3
@deft_code ¡Respuesta actualizada! Por favor, mira mi comentario anterior sin embargo. – LnxPrgr3