. .NET raamistik on käitusaegne klassiteek C# jaoks, . .NET on mitmelõimeline keskkond. Lõim on üks järjestikune juhtimisprotsess protsessis. Lõim on protsessis olev üksus. Ühel protsessil võib olla mitu lõime, ja lõimel peab olema vanemprotsess.
Lõimedel on tavaliselt kolm põhilist olekut: lugemine, blokeerimine ja töötamine. Kolmest põhiseisundist tuletatakse viis lõimede põhioperatsiooni. Esiteks, tuletatakse, lõimed tuletatakse protsessi sees. Teiseks, ajasta, vali valmis lõim, et siseneda operatsiooniolekusse. Kolmandaks, blokeeri – kui lõim peab ootama sündmuse toimumist täitmise ajal, blokeeritakse see. Neljandaks, blokeeringu eemaldamine, kui sündmus algab, avatakse lõim ja see siseneb valmisjärjekorda. Viiendaks, lõpp, lõpeb lõim ning registri kontekst ja virna sisu, mida see käivitas, vabastatakse.
Uus lõim on äsja genereeritud lõimeobjekt, mis pole veel ressursse eraldanud. Seetõttu saab kasutada ainult start() või close() meetodeid.
Käivitatav olek on siis, kui lõim saab pärast start() meetodi käivitamist lõime jaoks vajalikud ressursid ja kutsub run() meetodi käivitamiseks.
Not Runable olek on olek, mis siseneb järgmiste sündmuste korral, kutsutakse suspend() meetod, kutsutakse unemeetod, lõim kasutab wait() tingimusmuutuja ootamiseks ja lõim ootab I/O-d.
Surnud on siis, kui Run() meetod tagastab või mõni teine lõim kutsub stop() meetodit ja lõim siseneb surnud olekusse. Allpool on kaks lihtsat näidet Threadist.
Kokkuvõte: Miks kasutada Thread'i (mitmelõimeline), see on selleks, et vältida peamise lõime blokeerimist; kui on vaja töödelda suurt andmemahtu või kutsuda aeganõudvat meetodit, peame kasutama Thread multi-threadingut.
Näide:
Multithreadingu mittekasutamine: liides ei reageeri... See on sellepärast, et mitmelõimelist süsteemi ei kasutata
|