Partilhar via


Bloqueios de leitor-gravador

The ReaderWriterLockSlim classe permite que vários threads de ler um recurso ao mesmo tempo, mas requer um segmento para aguardar um bloquear exclusivo para gravar o recurso.

Você pode usar um ReaderWriterLockSlim em seu aplicativo para fornecer sincronização cooperativa entre os threads que acessam um recurso compartilhado. Bloqueios são executados no ReaderWriterLockSlim propriamente dito.

sistema autônomo com qualquer mecanismo de sincronização de thread, você deve garantir que nenhum thread ignora o bloqueio é fornecido por ReaderWriterLockSlim. Uma maneira de garantir isso é criar uma classe que encapsula o recurso compartilhado.Essa classe forneceria membros que acessar o recurso compartilhado particular e que usam uma private ReaderWriterLockSlim para a sincronização. Para obter um exemplo, consulte o exemplo de código para o ReaderWriterLockSlim classe. ReaderWriterLockSlim é eficiente de ser usado para sincronizar objetos individuais.

Estruture seu aplicativo para minimizar a duração de leitura e operações de gravar.As operações de gravar longa afetam diretamente throughput porque o bloquear de gravar é exclusivo.Leia longo gravadores de aguardando sistema autônomo operações de bloco e se pelo menos um segmento está aguardando o acesso de gravar, sistema autônomo threads que solicitam acesso de leitura serão bloqueados também.

Observação:

O .NET Framework possui dois bloqueios de leitor-autor, ReaderWriterLockSlim e ReaderWriterLock. ReaderWriterLockSlim é recomendado para todos os novos desenvolvimentos. ReaderWriterLockSlim é semelhante a ReaderWriterLock, mas ele simplificou as regras de recursão e para atualizar e fazer downgrade de estado de bloquear. ReaderWriterLockSlim evita muitos casos de deadlock potencial. Além disso, o desempenho de ReaderWriterLockSlim é significativamente melhor do que ReaderWriterLock.

Consulte também

Referência

ReaderWriterLockSlim

ReaderWriterLock

Outros recursos

Threads gerenciadas

Recursos e objetos de Threading