Pärast .NET 4.0 versiooni pakuti .NET raamistikus turvalist laiska laadimistüüpiLaisk Lazy suudab töötada mitmelõimelises keskkonnas, garanteeritultGetValueFunktsioon täidetakse vaid korra, seega rakendatakseSingletoni režiim
Varem kasutasime kvadratilisi otsustuslukke üksikmustrite rakendamiseks või klasside staatiliste initsialiseerimisfunktsioonide kasutamiseks Lazy tüübi puhul on see protsess lihtsam ja jõudlus parem
Kui Lazy luuakse, saad määrata lõime paigaldusrežiimi, praegu on kaks režiimi,Ainult avaldamine,ExcutionAndPublication
Ainult avaldamise režiim
1. Käivita initsialiseerimise funktsioon ja pane see sisemisse kastiKarptüüp, lahendab nullväärtuse hindamise probleemi, kui juhtum on loodud, tagastatakse null,Protsess on lõime-ebaturvaline
2. Määrake, kas m_boxed on tühi, m_boxed on väli, mis on väärtusega salvestatud, kui see on võrdne tühjaga, on see seatud kasti, see meetod võib tagada aatomilisus,Protsess on lõimekindel
3. Kui CreateValue tagastab tühjana, tähendab see, et teised lõimed on juba instantsid loonud, seejärel seatud juba loodud instantsideks
4. Märgi initsialiseerimismeetod initsialiseerituks, mis tavaliselt juhtub samaaegse käivitamise puhul, ja käivita CreateValue mitu korda
Ainult avaldaminerežiimi kasutatakse vastavaltInterlocked.CompareExchange, see klass sisaldab aatomilisuse meetodeidCAS (võrdle ja vaheta)
CAS on teostatud CPU poolt pakutavate aatomiliste käskude abil ning erinevatel käitusversioonidel võivad olla erinevad rakendused Põimitud spetsiifiline rakendus Natiivses meetodis saavad huvilised sõbrad konkreetset rakendust kontrollida coreclr/jvm koodi kaudu
Selles režiimis,Üksikfunktsioon võib töötada mitu korda, kuid lõpuks on garanteeritud, et saadakse ainult üks instants
ExcutionAndPublication režiim
ExcutionAndPublicationrežiimis kasutatav režiimVolatile+Monitor,MonitorOn külllukkLause teostus, Monitori rakendus natiivses koodis, on tugev lukk
MonitorJärjekorra ja lõime une on toetatud, mis tagab, et kogu meetodiplokk täidetakse ühe lõimega olekus
Originaallink:Hüperlingi sisselogimine on nähtav. |