estoy trabajando actualmente en una pequeña clase de contenedor para el hilo impulso pero yo realmente no entiendo cómo funciona la función de reposo, esto es lo que tengo hasta ahora:¿Qué significa boost :: thread sleep() do?
BaseThread::BaseThread(){
thread = boost::thread();
bIsActive = true;
}
BaseThread::~BaseThread(){
join();
}
void BaseThread::join(){
thread.join();
}
void BaseThread::sleep(uint32 _msecs){
if(bIsActive)
boost::this_thread::sleep(boost::posix_time::milliseconds(_msecs));
}
Así es como he implementado hasta ahora, pero Realmente no entiendo cómo el método estático this_thread :: sleep sabe qué hilo dormir si, por ejemplo, varias instancias de mi contenedor de hilos están activas. ¿Es esta la manera correcta de implementarlo?
código de verificación como qué? interrupciones parece ser una buena manera también. – user240137
Lo que quiero decir con "código de verificación" es que en el código ejecutado por el hilo dado, en algún lugar hay un 'si' que verifica si necesita dormir y lo hace si es necesario. Por ejemplo, si su hilo ejecuta una función con un gran bucle, puede ser suficiente comprobar si necesita dormir (comprobando un booleano establecido por su código actual, por ejemplo) en cada extremo de la iteración del bucle. Pero en tu caso no quieres ser intrusivo con el código de tu hilo, así que las interrupciones parecen una mejor alternativa. – Klaim