Estoy creando un programa con varios subprocesos usando pthreads.pthread sleep linux
¿sleep()
hace que el proceso (todos los hilos) para de ejecutar o solo el hilo al que estoy llamando sleep
?
Estoy creando un programa con varios subprocesos usando pthreads.pthread sleep linux
¿sleep()
hace que el proceso (todos los hilos) para de ejecutar o solo el hilo al que estoy llamando sleep
?
Solo el hilo. El POSIX documentation for sleep() dice:
La función
usosleep()
hará que el hilo llamando a ser suspendido de la ejecución ...
: sleep(10)
durante 10 segundos sueño.
Normalmente uso nanosleep y funciona bien. Nanosleep supera la ejecución del hilo de llamada. He tenido la misma duda porque en algunas páginas man sleep se refiere a todo el proceso.
Prueba de esto,
#include <unistd.h>
usleep(microseconds);
Sí, eso es más fácil de usar que 'nanosleep' en la mayoría de los casos. –
Esto es lo que "el hombre del sueño 3" dice: "sleep() hace que el proceso de llamada del sueño hasta que hayan transcurrido segundos segundos ..." (Ubuntu 10). La función está en unistd.h. ¿Es incorrecta esta documentación o hay una segunda función de suspensión? – user48956
@ user48956: Por razones históricas, las páginas man a menudo usan "proceso" donde el comportamiento ahora se aplica al "hilo" - este es el caso en la página man 'sleep (3)' a la que se refiere. Sugiero enviar un error a Ubuntu sobre la documentación. – caf