Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 30344|Atbildi: 2

[Avots] C# vītnes drošība ar slēdzeni

[Kopēt saiti]
Publicēts 13.06.2016 17:26:25 | | |

Ja kods ir procesā, kurā vienlaikus darbojas vairāki pavedieni, iespējams, tas palaiž kodu vienlaikus. Ja katras palaišanas rezultāts ir tāds pats kā viena pavediena rezultāts un citu mainīgo vērtības ir tādas pašas, kā paredzēts, tas ir drošs.
Citiem vārdiem sakot, klases vai programmas nodrošinātā saskarne ir atomu pavedieniem vai pārslēgšanās starp vairākiem pavedieniem nerada neskaidrības saskarnes izpildes rezultātā, kas nozīmē, ka mums nav jāapsver sinhronizācija.
Vītņu drošības problēmas izraisa gan globālie, gan statiskie mainīgie.
Ja katram pavedienam ir tikai globālo mainīgo un statisko mainīgo lasīšanas operācijas, bet nav rakstīšanas operāciju, parasti šis globālais mainīgais ir drošs; Ja vairāki pavedieni vienlaikus veic lasīšanas un rakstīšanas operācijas mainīgajam, parasti ir nepieciešama pavedienu sinhronizācija, pretējā gadījumā tā var ietekmēt pavedienu drošību.

Bloķēšanas mērķis ir novērst vienlaicīgas darbības, kad tiek izpildīta vairāku pavedienu, un bloķēšanas atsauces tipa objekti ļauj bloķētajā apgabalā vienlaikus darboties tikai vienam pavedienam.

Bloķēšana var bloķēt tikai vienu atsauces tipa mainīgo, tas ir, bloķēt adresi




Pastāv atšķirība starp skriešanas rezultātiem ar un bez bloķēšanas:

Pēc bloķēšanas: i vērtība samazināsies pa vienam, nebūs lēcienu, atkārtotas izvades līdz vērtībai 0;

Bez bloķēšanas: i vērtības izeja lēks, nepārtraukti samazināsies, un tai var būt arī -1 vērtības izeja;

Iemesls: Pēc slēdzenes pievienošanas tikai viens pavediens var izpildīt kodu bloķētajā apgabalā vienlaikus, un abi pavedieni tiek izpildīti secībā, tāpēc nebūs pārtraukta izvade.




Iepriekšējo:Lietotājs atcelts no saglabāšanas dialoga (MS Visual Database Tools)
Nākamo:Jauka DBHelper klase, kas izpilda saglabātās procedūras
Publicēts 14.06.2016 10:53:36 |
 Saimnieks| Publicēts 10.02.2022 09:18:58 |
.NET/C# bloķēšanas principa pārraugs sniedz padziļinātu skaidrojumu
https://www.itsvse.com/thread-9633-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com