. .NET framework je runtime knižnica tried pre C#, . .NET je viacvláknové prostredie. Vlákno je jeden sekvenčný riadiaci proces v procese. Vlákno je entita v procese. Proces môže mať viacero vlákien a vlákno musí mať rodičovský proces.
Vlákna majú zvyčajne tri základné stavy: čítanie, blokovanie a prevádzka. Z troch základných stavov sa odvodí päť základných operácií vlákien. Po prvé, odvodenie, vlákna sú odvodené v rámci procesu. Po druhé, naplánujte a vyberte pripravené vlákno na vstup do stavu operácie. Po tretie, blokovať, ak vlákno potrebuje počkať na udalosť počas vykonávania, bude zablokované. Po štvrté, odblokovať, ak udalosť začne, vlákno sa odblokuje a vstupuje do pripraveného frontu. Po piate, dokončiť, vlákno končí a kontext registra a obsah zásobníka, ktorý vykonalo, sú uvoľnené.
Nové vlákno je novo vygenerovaný objekt vlákna, ktorý ešte nepridelil zdroje. Preto môžete použiť iba metódy start() alebo close().
Runable state je, keď vlákno získa potrebné zdroje po spustení metódy start() a zavolá metódu run() na vykonanie.
Stav Not Runable je stav, ktorý vstupuje, keď nastanú nasledujúce udalosti, zavolá sa metóda suspend(), zavolá sa metóda sleep(), vlákno čaká wait() na čakanie na podmienkovú premennú a vlákno čaká na I/O.
Mŕtvy nastáva, keď sa metóda Run() vráti, alebo iné vlákno zavolá metódu stop() a vlákno vstúpi do mŕtveho stavu. Nižšie sú uvedené dva jednoduché príklady Threadu.
Zhrnutie: Prečo používať Thread (multi-threading), je to na zabránenie blokovania hlavného vlákna, ak potrebujete spracovať veľké množstvo dát alebo zavolať časovo náročnú metódu, musíme použiť viacvláknové vlákno.
Príklad:
Nepoužívanie multithreadingu: Rozhranie nereaguje... Je to preto, že multithreading sa nepoužíva
|