Critical Section


Um objeto de seção crítica fornece sincronização semelhante à fornecida por um objeto mutex, exceto que uma seção crítica pode ser usado apenas pelos segmentos de um único processo.

Evento, mutex, semáforos e objetos também podem ser usados em um aplicativo de processo único, mas seção crítica é um pouco mais rápido e mais eficiente para sincronização de exclusão mútua.

Como um objeto mutex, um objeto de seção crítica pode ser propriedade de apenas um segmento de cada vez, o que o torna útil para proteger um recurso compartilhado de acesso simultâneo.

Ao contrário de um objeto mutex, não há nenhuma maneira de saber se uma seção crítica foi abandonado.

Passo a passo de utilização:

// Cria a variável da seção critica
static CRITICAL_SECTION csection;

// Inicializa a seção critica
InitializeCriticalSection(&csection);

// lock()
EnterCriticalSection(&csection);

// faz o que tem que fazer
...

// unlock()
LeaveCriticalSection(&csection);

// Termina a seção critica
DeleteCriticalSection(&csection);

Fontes:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682530%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686908%28v=vs.85%29.aspx




Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br