Arquivos de mapeamento de memória usam memória virtual para mapear arquivos ao espaço de endereços do processo, após o que o processo manipula o arquivo assim como o endereço no espaço do processo, como usando memcpy e outras funções de operação de memória na linguagem C. Esse método pode ser bem usado em situações onde um arquivo ou um arquivo grande precisa ser processado com frequência, e a eficiência do processamento de IO é maior do que a de um IO comum Memória compartilhada é um caso especial de arquivos mapeados em memória, que mapeiam um pedaço de memória em vez de um arquivo no disco. O assunto da memória compartilhada é Processo, e o sistema operacional aloca um espaço de memória para cada processo por padrão, e cada processo só pode acessar um pedaço de memória alocado pelo sistema operacional, mas não a outros processos. E às vezes você precisa acessar a mesma memória entre processos diferentes, o que você deve fazer? O sistema operacional fornece uma API para criar acesso à memória compartilhada, e processos que precisam compartilhar memória podem acessar a memória compartilhada por múltiplos processos através desse conjunto de APIs definidas, e cada processo acessa essa memória como se estivesse acessando um arquivo em um disco rígido. O .Net 4.0 introduz o System.IO. MemoryMappedFiles, uma classe que encapsula as APIs relacionadas à Memória Compartilhada do Windows, facilitando o uso de arquivos de mapeamento de memória por programadores do .Net. Use memória compartilhada em C#. O código a seguir para a App1 permite ao usuário inserir uma linha de texto na memória compartilhada; O App2 atualiza constantemente o console e gera o conteúdo mais recente de memória compartilhada; O App3 implementa as mesmas funções do App2, mas o método de leitura é diferente.
Dois métodos foram usados para ler os dados. Como a comunicação entre processos raramente era usada antes, esse método é apenas uma compreensão preliminar. O programa é muito rudimentar, e há muitas coisas que não são julgadas. Por exemplo, como criar uma memória compartilhada, como recuperá-la e excluí-la, etc.
|