See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 24045|Vastuse: 0

[Konsooliprogramm] Volatiilne märksõnade õppimine .net/C#-s

[Kopeeri link]
Postitatud 23.05.2018 11:23:40 | | | |
MS Link:Hüperlingi sisselogimine on nähtav.

Volatiilne märksõna näitab, et välja saab muuta, kui mitu lõime täituvad samaaegselt. Välju, mis on kuulutatud volatiilseteks, ei ole kompilaatori optimeerimisega piiratud (eeldades, et neile pääseb ligi ühe lõimega). See tagab, et väli kuvatakse alati kõige värskema väärtusega.

Volatiilset modifikaatorit kasutatakse tavaliselt väljade puhul, millele pääseb ligi mitu lõime, kuid mis ei serialiseeri ligipääsu lukustuslause abil.

Volatiilseid märksõnu saab rakendada järgmistele valdkondadele:

  • Viidete tüüp.
  • Osuti tüüp (ebaturvalises kontekstis). Pane tähele, et kuigi osutit ise võib olla muudetav, ei saa objekt, millele see osutab, olla muudetav. Teisisõnu, "osutajat muutuvale objektile" ei saa deklareerida.
  • tüübid nagu sbyte, byte, short, ushort, int, uint, char, float ja bool.
  • Enum-tüüp, millel on üks järgmistest baastüüpidest: bait, sbyte, short, ushort, int või uint.
  • Üldised tüübiparameetrid, mis on teadaolevalt viitetüübid.
  • IntPtr ja UIntPtr.


Muutuvate märksõnade puhul saab rakendada ainult klassi või struktuuri väljadele.Kohalikke muutujaid ei saa deklareerida volatiilseteks


Ei mingit enam, kirjuta tsükkel, et seda testida:

Testime seda 10 000 korda järjest,leidis, et väärtuse väljund on õige, kuid,See ei selgitaVolatiilne on lõimekindelSest kui sa seda mitu korda testid, leiad, et arvutusvigu tekivad! Sest on võimalus õigeks tulemuseks ja võimalus valeks tulemuseks



Kood:



Testime uuesti 100 000 tsüklit ja leiame, et a väärtus on vale, sest mida väiksem on silmuste arv, seda väiksem on vea tõenäosus, ja viga pole nii ilmne, nagu just pärast 10 000 tsüklit viga ei olnud.

Sel hetkel lisame testimiseks luku ja on näha, et a väärtus arvutatakse õigesti, nagu ootasime.



Kood:



Kokkuvõte: volatiil ei taga lõime turvalisust, nagu näete ülaltoodud näites.




Eelmine:Laadi alla pakettide hankimise tööriist smsniff 2.0 Hiina versioon
Järgmine:VS kaugsilumine "silumisoperatsioon võtab oodatust kauem aega" lahendus
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com