Soubory mapování paměti používají virtuální paměť k mapování souborů do adresního prostoru procesu, poté proces manipuluje se souborem stejně jako s adresou v procesním prostoru, například pomocí memcpy a dalších paměťových operačních funkcí v jazyce C. Tato metoda může být dobře použita v situacích, kdy je třeba soubor nebo velký soubor zpracovávat často a efektivita zpracování IO je vyšší než u běžných IO Sdílená paměť je speciální případ souborů mapovaných na paměť, které mapují část paměti místo souboru na disku. Předmětem sdílené paměti je proces a operační systém přiděluje každému procesu paměťový prostor ve výchozím nastavení, přičemž každý proces má přístup pouze k části paměti přidělené operačním systémem, nikoli však k jiným procesům. A někdy potřebujete přístup ke stejné paměti mezi různými procesy, co byste měli dělat? Operační systém poskytuje API pro vytvoření přístupu ke sdílené paměti a procesy, které potřebují sdílet paměť, mohou přistupovat k paměti sdílené více procesy prostřednictvím této sady definovaných API a každý proces přistupuje k této paměti, jako by přistupoval k souboru na pevném disku. .Net 4.0 představuje System.IO. Jmenný prostor MemoryMappedFiles, třída, která zapouzdřuje API související s Windows Shared Memory, což usnadňuje programátorům .Net používání souborů pro mapování paměti. Používejte sdílenou paměť v C#. Následující kód pro App1 umožňuje uživateli zadat řádek textu do sdílené paměti; App2 neustále obnovuje konzoli a generuje nejnovější obsah sdílené paměti; App3 implementuje stejné funkce jako App2, ale metoda čtení je odlišná.
Byly použity dvě metody čtení dat. Protože komunikace mezi procesy byla dříve používána jen zřídka, tato metoda je pouze předběžným porozuměním. Program je příliš jednoduchý a mnoho věcí není posuzováno. Například jak vytvořit sdílenou paměť, jak ji obnovit a smazat atd.
|