Onko Vector-lanka turvallinen Javassa?
Onko Vector-lanka turvallinen Javassa?

Video: Onko Vector-lanka turvallinen Javassa?

Video: Onko Vector-lanka turvallinen Javassa?
Video: CS50 2013 - Week 10, continued 2024, Marraskuu
Anonim

Vektori menetelmät ovat kaikki synkronoituja. Joten käytä sitä usealta langat On " turvallinen ". Sinun tarvitsee vain synkronoida, jos tarvitset luku-arvioi-kirjoitusprosessin ollakseen atomisia. Omien menetelmien synkronointi ei välttämättä tee koodistasi lanka - turvallinen noille skenaarioille.

Kun tämä pidetään mielessä, onko luettelosäie turvallinen Javassa?

Itse asiassa kaikki kokoelmaluokat (paitsi Vector ja Hashtable) java . util-paketti eivät ole lanka - turvallinen . Siksi uusi kokoelmat ( Lista , Set, Map jne.) eivät tarjoa lainkaan samanaikaisuuden hallintaa, mikä takaa parhaan mahdollisen suorituskyvyn yksisäikeisissä sovelluksissa.

Samoin mikä kokoelma on säikeen turvallinen Javassa? A lanka - turvallinen luokka on luokka, joka takaa luokan sisäisen tilan sekä menetelmien palautetut arvot, ovat oikein, kun niitä kutsutaan samanaikaisesti useilta langat . The kokoelma luokat, jotka ovat lanka - turvallinen Javassa ovat pino, vektori, ominaisuudet, hashtable jne.

Kun tämä otetaan huomioon, onko Java HashSet -säie turvallinen?

HashSet ei ole säikeen turvallinen HashSet sisään Java ei ole lanka turvallinen koska sitä ei ole oletuksena synkronoitu. Jos käytät HashSet monisäikeisessä ympäristössä, jossa useat voivat käyttää sitä langat samanaikaisesti ja rakenteellisesti muutettu myös yhdellä lanka sitten se on synkronoitava ulkoisesti.

Mikä on säikeen turvallinen ArrayList vai vektori?

Vektori on hidas sellaisenaan lanka turvallinen . Verrattuna ArrayList on nopea, koska se ei ole synkronoitu. Siten sisään ArrayList kaksi tai useampi langat voi käyttää koodia samaan aikaan, kun Vektori on rajoitettu yhteen lanka kerrallaan. A Vektori oletuksena kaksinkertaistaa taulukonsa koon.

Suositeltava: