domingo, 3 de octubre de 2010

QMutex como sincronizar Threads en QT


Este ejemplo es muy simple y muestra el uso básico de QMutex para forzar la exclusión mutua entre una serie de Threads que acceden a una región critica, se define una clase ThreadR que implementa el acceso a la región critica, dicha región critica utiliza los métodos lock() y unlock() de la clase QMutex para garantizar que solo uno de los threads accede a la variable protegida. 






void run()
    {
        while( true )
        {
            mutex.lock();
            Reportar( mNumero );
            mutex.unlock();
            sleep( (rand() % 5 )+ 1 ) ;
        }
    }

Descargar Código Fuente