Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 14222|Atsakyti: 0

[Komunikatas] Įžvalga apie pagrindinius "Java" ir "I++" gijų saugos tipus

[Kopijuoti nuorodą]
Paskelbta 2015-04-05 22:17:45 | | |

Java kiti pagrindiniai kintamieji yra atominiai, išskyrus 8 baitų, 64 bitų kintamuosius Long ir Double.


"Java" saugojimo modelis reikalauja, kad tiek gauti, tiek saugoti operacijos būtų atominės, tačiau nepastoviems ilgiems ir dvigubiems kintamiesiems JVM leidžia padalyti 64 bitų skaitymą arba rašymą į dvi 32 bitų operacijas.

Jei skaitymas ir rašymas vyksta skirtingose gijose, skaitant nepastovaus tipo ilgą gali būti didelis 32 bitų vienos reikšmės ir mažas 32 bitų kitos.

Taigi, net jei jums nerūpi pasibaigę duomenys, gali būti nesaugu naudoti bendrus, kintamus ilgus ir dvigubus kintamuosius kelių gijų programoje, nebent jie būtų paskelbti nepastoviais arba apsaugoti užraktu.


Kalbant apie atomines operacijas, tai reiškia, kad skaitymas ir rašymas yra atominiai, pvz., i=5; Tai yra atominė operacija.

Tačiau jei dviejų atomų veikimas atliekamas kartu, jis nebūtinai yra atominis, pavyzdžiui, pirmiausia skaito, o paskui rašo, tada gali būti, kad po skaitymo kintamasis buvo pakeistas.

i++ yra tokia operacija, pirmiausia perskaitykite, o paskui rašykite, taigi sveikasis kintamasis yra atominis, o ne tai, kad i++ yra atominė operacija.

Kai naudojate for(int i=0; i<10000; i++){System.out.print(i)}

Pamatysite, kad galų gale nespausdinsiu 10 000, o atspausdinsiu apie 8-9 tūkst.


Tačiau kelių gijų atveju, net jei sveikasis kintamasis yra atominis, gali kilti sriegio saugos problemų, o tai yra sriegio matomumo problema, todėl reikia pridėti nepastovų teiginį.

Šis modifikatorius yra priverstinis kintamasis, kuris kiekvieną kartą nuskaitomas iš atminties ir nėra saugomas registruose.




Ankstesnis:"SQL 2008" pateikia klaidos pranešimą (teikėjas: SQL tinklo sąsajos, klaida: 25 - ryšio žodis).
Kitą:[Greitas ir įsiutęs 7] debiutavo 2.12G DVD Aiškiausia versija internete
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com