Pergunta

I tem uma estrutura de dados cujas operações podem ser categorizados como operações de leitura (por exemplo, pesquisa) e as operações de gravação (por exemplo, para inserção, remoção). Estas operações devem ser sincronizados de forma que:

  • operações de leitura não pode ser executado enquanto uma operação de gravação está em execução (a menos que no mesmo segmento), as operações no entanto ler pode ser executado simultaneamente com respeito a outras operações de leitura.
  • As operações de escrita não pode ser executado enquanto tanto as operações de leitura ou gravação estão sendo executadas (a menos que no mesmo segmento).

Como pode este tipo de sincronização ser implementado?

A plataforma é ganhar-api assim objetos de sincronização da API e funções bloqueadas são os blocos básicos de construção.

Foi útil?

Solução

implementação recomendada pela Microsoft de um leitor / escritor de bloqueio está aqui (você vai ter que rolar um pouco, para o cabeçalho "leitor / travas Writer"):

http://msdn.microsoft.com/en-us/library /ms810427.aspx

Para referência, para aqueles que têm a mesma pergunta, mas quem tem o luxo de NET:

http://msdn.microsoft.com/en -us / library / system.threading.readerwriterlock.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top