Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 23927|Odpoveď: 2

[Zdroj] C# implementuje mapovanie pamäťe procesov, zdieľaná pamäť súborov

[Kopírovať odkaz]
Zverejnené 7. 10. 2017 18:51:10 | | |
Súbory na mapovanie pamäte používajú virtuálnu pamäť na mapovanie súborov do adresného priestoru procesu, po čom proces manipuluje so súborom rovnako ako s adresou v procesnom priestore, napríklad použitím memcpy a iných pamäťových operačných funkcií v jazyku C. Táto metóda sa dá dobre využiť v situáciách, keď je potrebné súbor alebo veľký súbor často spracovávať a efektivita spracovania IO je vyššia ako pri bežných IO
Zdieľaná pamäť je špeciálny prípad súborov mapovaných na pamäť, ktoré mapujú časť pamäte namiesto súboru na disku. Predmetom zdieľanej pamäte je proces a operačný systém štandardne priraďuje každému procesu pamäťový priestor, pričom každý proces má prístup len k časti pamäte pridelenej operačným systémom, ale nie k iným procesom. A niekedy potrebujete pristupovať k tej istej pamäti medzi rôznymi procesmi, čo by ste mali robiť? Operačný systém poskytuje API na vytvorenie prístupu k zdieľanej pamäti a procesy, ktoré potrebujú zdieľať pamäť, môžu pristupovať k pamäti zdieľanej viacerými procesmi prostredníctvom tejto sady definovaných API a každý proces pristupuje k tejto pamäti, akoby pristupoval k súboru na pevnom disku. .Net 4.0 predstavuje System.IO. Menný priestor MemoryMappedFiles, trieda, ktorá zahŕňa API súvisiace s Windows Shared Memory, čím uľahčuje používateľom .Net používanie súborov mapovania pamäte.
Používajte zdieľanú pamäť v C#. Nasledujúci kód pre App1 umožňuje používateľovi zadať riadok textu do zdieľanej pamäte; App2 neustále obnovuje konzolu a generuje najnovší obsah zdieľanej pamäte; App3 implementuje rovnaké funkcie ako App2, ale spôsob čítania je odlišný.

Na čítanie dát sa používali dve metódy.
Keďže komunikácia medzi procesmi sa predtým používala len zriedka, táto metóda je len predbežným pochopením. Program je príliš jednoduchý a je veľa vecí, ktoré sa nehodnotia. Napríklad, ako vytvoriť zdieľanú pamäť, ako ju získať a vymazať a podobne.




Predchádzajúci:.net/c# CryptoJS aes šifrovaný zdrojový kód
Budúci:activemq persistentný úlož je plný
 Prenajímateľ| Zverejnené 3. 10. 2025 16:10:57 |
.NET/C# implementuje programový singleton založený na Mutex a MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# rodičovsko-podriadené procesy komunikujú pomocou MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com