Da li je Vector nit siguran u Javi?
Da li je Vector nit siguran u Javi?

Video: Da li je Vector nit siguran u Javi?

Video: Da li je Vector nit siguran u Javi?
Video: Почему в магазинах тупеют 2024, Maj
Anonim

Vector sve metode su sinhronizovane. Dakle, koristite ga od više niti je " sigurno ". Sinhronizirati se morate samo ako trebate da proces čitanja-vrednovanja-pisanja bude atomski. Sinhronizacija vlastitih metoda ne znači nužno da vaš kod thread - sigurno za te scenarije.

Imajući ovo u vidu, da li je lista nit sigurna u Javi?

Zapravo, sve klase kolekcije (osim Vector i Hashtable) u java . util paket nisu thread - sigurno . Zato novi kolekcije ( Lista , Set, Map, itd.) ne pružaju nikakvu kontrolu istovremenosti da bi se pružile maksimalne performanse u jednonitnim aplikacijama.

Slično tome, koja je kolekcija sigurna niti u Javi? A thread - sigurno class je klasa koja jamči interno stanje klase kao i vraćene vrijednosti iz metoda, ispravne su dok se istovremeno pozivaju iz više niti . The zbirka klase koje su thread - sigurno u Javi su Stack, Vector, Properties, Hashtable, itd.

Imajući ovo u vidu, da li je Java HashSet nit sigurna?

HashSet nije Niti siguran HashSet in Java nije konac siguran pošto nije sinhronizovano podrazumevano. Ako koristite HashSet u okruženju s više niti gdje mu pristupa višestruko niti istovremeno i strukturno modificiran čak i od strane jednog thread onda se mora eksterno sinhronizovati.

Što je nit siguran ArrayList ili vektor?

Vector je spor kao što jeste konac siguran . U poređenju ArrayList je brz jer nije sinkroniziran. Tako u ArrayList dva ili više niti može pristupiti kodu u isto vrijeme, dok Vector je ograničena na jednu thread u vrijeme. A Vector podrazumevano je udvostručenje veličine svog niza.

Preporučuje se: