Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 24045|Odpověď: 0

[Konzolový program] Volatilní učení klíčových slov v .net/C#

[Kopírovat odkaz]
Zveřejněno 23.05.2018 11:23:40 | | | |
Odkaz na MS:Přihlášení k hypertextovému odkazu je viditelné.

Volatile klíčové slovo znamená, že pole lze upravit tím, že více vláken vykoná současně. Pole deklarovaná jako volatilní nejsou omezena optimalizací kompilátoru (za předpokladu, že k nim přistupuje jedno vlákno). To zajišťuje, že pole je vždy vykreslováno s nejnovější hodnotou.

Volatilní modifikátor se obvykle používá pro pole, ke kterým přistupuje více vláken, ale přístup se neserializuje pomocí příkazu lock.

Volatilní klíčová slova lze aplikovat na následující typy polí:

  • Typ citace.
  • Typ ukazatele (v nebezpečném kontextu). Všimněte si, že zatímco samotný ukazatel může být proměnlivý, objekt, na který ukazuje, nemůže být proměnlivý. Jinými slovy, "ukazatel na proměnlivý objekt" nelze deklarovat.
  • Typy jako sbyte, byte, short, ushort, int, uint, char, float a bool.
  • Enum typ s jedním z následujících základních typů: byte, sbyte, short, ushort, int nebo uint.
  • Obecné typové parametry, o kterých je známo, že jsou referenčními typy.
  • IntPtr a UIntPtr.


Klíčová slova proměnných lze aplikovat pouze na pole třídy nebo struktury.Lokální proměnné nelze deklarovat jako volatilní


Už žádné nesmysly, napište smyčku na testování:

Otestujme to 10 000krát v smyčce,zjistil, že výstup hodnot a je správný, ale,To nevysvětlujeVolatile je bezpečný pro závityProtože když to otestujete mnohokrát, zjistíte, že se objeví chyby ve výpočtech! Protože existuje šance na správný výsledek a možnost špatného výsledku



Kód:



Otestujme znovu 100 000 smyček a zjistíme, že hodnota a je nesprávná, protože čím menší počet smyček, tím menší je pravděpodobnost chyby, a chyba není tak zřejmá, stejně jako po 10 000 smyčkách chyba nebyla právě teď.

V tuto chvíli přidáváme zámek k testování a je vidět, že hodnota a je správně vypočítána, jak jsme očekávali.



Kód:



Shrnutí: volatile nezaručuje bezpečnost závitu, jak můžete vidět v příkladu výše.




Předchozí:Stáhněte si nástroj pro chytání paketů smsniff 2.0 čínská verze
Další:VS vzdálené ladění "ladění trvá déle, než se očekávalo" řešení
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com